가. 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에 알림