[GitHub Action] workflow 연속 수행

개발者·2022년 1월 10일
0

GitHub Action에서 연속적 작업을 동작시키는 방법 중 두가지 방법에 대해서 알아보자.

1. 하나의 workflow 파일안에 여러 job을 등록한다.

pr_sample.yml

name: sample
on:
  pull_request:
    types: [submited]
jobs:
  pr-automerge:
    runs-on: ubuntu-latest
    steps:
       - name: merge pr
         run: ... 
       
  end-notification:
    needs: pr-automerge
    runs-on: ubuntu-latest
    steps: 
      - name: notification
       	run: ...
        	

1st job - pr-automerge
2nd job - end-notification

needs 키워드를 사용하면 의존성을 줄 수 있다.

2. workflow_run을 이용한다.

pr_check.yml

name: pr check
on:
  pull_request:
    types: [submited]
jobs:
  pr-check:
    runs-on: ubuntu-latest
    steps:
       - name: pr_check
         run: ... 

merge.yml

name: merge pr
on:
  workflow_run:
    workflows: ["pr check"]
    types:
      - completed
jobs:
  pr-merge:
    runs-on: ubuntu-latest
    if: $ {{ github.event.workflow_run.conclusion == 'success' || github.event.workflow_run.conclusion == 'failure' }}
    steps:
      ...

pr_check.yml workflow가 동작하면 merge.yml workflow가 동작한다.

workflow_run을 통해 통작하면, 이전 workflow의 권한에 상관 없이 GITHUB_TOKEN 와 같은 민감한 값에 접근이 가능하다.

profile
solrasido

0개의 댓글