GitHub Actions 이 GA 되어 모든 사람이 사용할 수 있게 되고 어느 정도 흘렀습니다. 그즈음 몇가지 Action 을 만들어 GitHub Marketplace 에 올렸으나, 이제야 한번 정리해 봅니다.

GitHub Action 은 GitHub 이 만든 CI/CD 서비스 입니다. 가장 가까운 경쟁자로는 CircleCi, TravisCi 등의 SaaS CI/CD 서비스가 있겠네요.

위의 두 서비스는 외부에 존재하는 깃의 권한을 부여 하고, Hook 을 통해 이벤트를 받고, 소스를 끌어다가 빌드를 시작 합니다.

GitHub Action 은 GitHub 을 위한 서비스로, 각 소스 root 의 .github/workflows/ 디렉토리에 빌드 설정이 있으면 해당 조건에 따라 무조건 실행 됩니다.

GitHub Action yaml 은 다음과 같이 구성 됩니다.

# .github/workflows/push.yml

name: Build-Push # Workflow 이름

on: # Event 조건
  push: # Push 가 발생 하면
    branches:
      - master # master branch 에서

jobs: # Job 설정
  build:
    runs-on: ubuntu-latest # 실행 되는 가상 환경

    steps: # steps
      - name: Checkout # 첫번째 step
        uses: actions/checkout@v3 # 소소를 가져 온다

      - name: Setup Node # 두번째 step
        uses: actions/setup-node@v1 # node 컨테이너를 setup 한다
        with:
          node-version: "12.x" # node 버전 12.x 지정

      - name: Run Build # 세번째 step
        run: | # npm install 을 실행
          npm install

      - name: Release to GitHub # 네번째 step
        uses: opspresso/action-builder@master # 사용자 정의 action
        with:
          args: --release # 사용자 정의 argument 를 전달
        env:
          SLACK_TOKEN: ${ { secrets.SLACK_TOKEN } } # 사용자 정의 secret 을 전달

Action 코드를 Push 하기전 (필요하다면) GitHub > Setings > Secrets 에 사용자 정의 secret 을 입력 합니다.

guthub-secrets

이제 Action 코드를 Push 하면 바로 빌드가 시작 됩니다.

guthub-action-build

이 Action 에서는 사용자 정의 Action step 을 사용 했습니다. 다음 포스트에서 사용자 정의 Action 을 만드는 방법을 소개 하겠습니다.