Search

GitHub Actions 개념

가. workflow

1) 정의
자동화된 일련의 절차(an automated procedure)
2) 특징
workflow는 한 개 이상의 job으로 구성됨
workflow의 실행은 event에 의해 유발(trigger)되거나 일정에 따라 시작(schedule)됨
3) 사용처
GitHub Project의 빌드, 테스트, 배포에 사용됨

나. event

1) 정의
workflow의 실행을 유발(trigger)하는 특정 동작
2) 특징
event는 GitHub의 내부 동작에 의해 유발될 수 있음
→ 커밋 푸쉬, 이슈 또는 PR 생성 등
event는 GitHub 외부의 동작에 의해 유발될 수 있음
→ repository dispatch webhook 사용 시 event 유발 가능

다. job

1) 정의
동일한 runner에 의해 실행되는 일의 집합
2) 특징
기본적으로 복수의 jobs로 구성된 workflow는 해당 jobs를 병렬적으로 실행함
jobs를 직렬적으로 실행하도록 수정 가능
3) 주요 필드
runs-on: job이 실행되는 플랫폼 명시
ex) runs-on: ubuntu-latest

라. Step

1) 정의
명령을 실행할 수 있는 독립적인 일의 구분
2) 특징
action이나 shell command가 하나의 step이 될 수 있음
하나의 job에서 여러 개의 step은 하나의 runner에 실행됨
→ 여러 개의 step은 runner에 의해 데이터를 공유할 수 있음
3) 주요 필드
name: step의 이름
use: market에 업로드되어 있는 사전 정의 step
run: CLI 활용하여 직접 작업을 명시할 경우 사용
with: step을 실행함에 있어 전달될 파라미터
id: step의 id로써 workflow 내부에서 해당 step을 참조하기 위한 값
ex) 어디서 어떻게 사용되는 거야? 어디서 참조된다는 건가?

마. Action

1) 정의
독립적인 형태의 작업 명령 단위
→ acion이 결합되어 step이 되고, step이 모여 하나의 job을 구성함

바. Runner

1) 정의
GitHub Actions runner application이 설치된 서버
2) 특징
한 번에 하나의 job을 실행하고 진행상황, 로그, 결과 등을 GitHub에 알림

Reference