개념
- 빌드, 테스트, 배포 파이프라인을 자동화하는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼
- 리포지토리에서 다른 이벤트 발생 시 워크플로 실행 가능
- 워크플로를 실행할 가상 머신 제공 가능
- 사용자 가지고 있는 데이터 센터 or 클라우드 인프라에서 자체 호스트형 실행기를 호스트 가능
구성 요소

워크플로
- 작업을 실행할 구성 가능한 자동화된 프로세스
- 리포지토리에 YAML 파일에서 정의
- 이벤트 트리거 or 수동 or 정해진 일정에 따라 트리거 가능
.github/workflows 디렉토리에 정의
이벤트
- 워크플로 실행을 트리거하는 리포지토리의 특정 활동
- ex) 끌어오기 요청, 이슈 오픈, 커밋 푸쉬 등
작업
- 동일한 실행기에서 실행되는 워크플로의 단계 집합
- 각 단계 = 실행되는 셸 스크립트 or 실행되는 작업?
- 단계는 순서대로 실행 서로 종속
- 동일한 실행기이므로 단계 간 데이터 공유 가능
- 작업 간 종속성 구성 가능
- 종속성이 없다면 병렬로 실행
actions
- GitHub Actions: 플랫폼에서 실행되는 사용자 지정 애플리케이션.
- 반복적이고 복잡한 태스크를 자동화하여 워크플로에서 코드 작성량을 줄일 수 있음.
- 주요 기능:
- Git 리포지토리에서 코드 가져오기
- 빌드 환경에 필요한 도구 체인 설정
- 클라우드 공급자 인증
- 직접 작성하거나, GitHub Marketplace에서 제공되는 작업을 활용 가능.
실행기(Runners)
- 워크플로를 실행하는 서버로, 한 번에 하나의 작업을 실행함.
- GitHub에서 제공하는 실행기:
- Ubuntu Linux, Windows, macOS (자동 프로비저닝된 가상 머신에서 실행됨)
- 더 큰 리소스를 제공하는 실행기도 선택 가능.
- 자체 호스팅 실행기:
- 특정 OS 또는 하드웨어 구성이 필요한 경우 직접 실행기 설정 가능.