AWS EC2 배포를 공부하면서, CI tool로써 GitHub Action을 사용했었다.
사용 당시에는 그렇구나.. 하고 넘어갔던 부분들을 좀 더 집요하게 파고들어 원리를 이해 해보고자 공식 문서를 읽어보고 정리하기로 했다.
빌드, 테스트 및 배포 파이프라인을 자동화 할 수 있는 CI/CD 플랫폼
DevOps를 넘어, Repository에서 다른 이벤트가 발생할 때 workflow를 실행할 수 있음
해당 Workflow를 실행하기 위해 Linx, Windows, MacOS와 같은 가상 머신을 제공함
GitHub Repository에 특정 이벤트 발생(pull 요청 등) → Trigger → Runner 작동 → Job 실행
하나 이상의 작업(job)을 실행하는 자동화 프로세스
Workflow는 GitHub repository에 체크인 된 YAML 파일에 의해 정의됨.
.github/workflows
에 정의된다. GitHub repository에 발생되는 어떠한 이벤트
에 의해 trigger될 때 실행됨. (수동으로 실행 가능. 일정 별 실행 가능)
Repository에는 각각 다른 작업 집합을 수행할 수 있는 여러개의 Workflow가 존재할 수 있음.
Workflow의 실행을 Trigger하는 Repository의 특정 활동
pull 요청, push 요청, REST API에 게시 등 여러 종류의 이벤트가 있을 수 있다.
작업을(job) 처리하는 가상 머신
작업 단위로 존재
"작업"을 의미
동일한 Runner에서 실행되는 workflow의 일련의 단계
Job은 순서대로 실행되며 서로 종속 됨
다른 작업과의 dependency 구성 가능