본문 바로가기

Etc./GitHub

Github Actions (깃헙액션)

기존에 대부분은 깃헙에서 서드파티 서비스를 이용해서 개발 워크플로우를 자동화하고 있었을 것이다.

그러한 워크플로우 중심에는 CI가 있었다.

 

lint, test, build등의 작업을 CI를 이용해서 했다면 이러한 워크플로우를 Actions이라는 이름으로 Github에서 직접 지원하기 시작한 것이다.

연동하는 것은 대표적으로 사용되는 Travis CI와 마찬가지로 간단하다.

 

다음은 Gradle Java Project에 Github Action을 설정해주는 예제이다.

.github/workflows/main.yml 경로로 설정 내용을 작성해주면 된다.

name: JAVA CI 
on: pull_request 
jobs: 
   main: 
      name: Build phase... 
      runs-on: ubuntu-18.04 
      env: 
         AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY }} 
         AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_KEY }} 
         AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} 
      steps: 
      - uses: actions/checkout@v1 
        with: 
           fetch-depth: 1 
      - name: Set up JDK 1.8 
        uses: actions/setup-java@v1 
        with: 
           java-version: 1.8 
      - name: Build with Gradle 
         run: ./gradlew build --stacktrace

공식문서를 참조하며 설정했다.

  • on : 깃헙 액션이 동작하는 조건을 설정한다.
  • job : 작업을 설정한다.
  • name : job 단위의 이름을 설정한다.
  • runs-on : 깃헙 액션이 동작하는 OS를 설정한다.
  • env : 환경변수를 설정한다.
  • step : 순서에 따라 작동할 action을 설정한다.
  • uses : 설정한 것을 사용한다 라고 해석할 수 있는데, 예를 들어 actions/checkout 을 하면 checkout을 한다는 것이다.

여기서 v1은 PR이 올라간 해당 브랜치로 checkout해서 clone을 한다는 것이다.

actions/setup-java 는 자바를 셋팅해주는 것을 가져와서 사용한다는 것이다.

이후에는 custom하게 워크플로우를 작성하면 된다.