overview
GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD)플랫폼으로, 저장소에 대한 풀 리퀘스트를 빌드하고 테스트하거나 병합된 PR을 프로덕션 환경에 배포하는 작업을 자동화할 수 있습니다.
GtiHub Actions는 단순히 DevOps를 넘어서서 저장소에서 다른 이벤트가 발생할 때 워크플로우를 실행할 수 있게 해줍니다. 예를 들어, 누군가가 저장소에 새 이슈를 생성할 때마다 적절한 labels을 자동으로 추가하는 워크플로우를 실행할 수 있습니다.
GitHub는 리눅스, 윈도우 및 macOS 가상 머신을 제공하여 워크플로우를 실행하거나, 고유한 데이터 센터나 클라우드 인프라에서 자체 호스팅 러너를 호스팅할 수 있습니다.
GitHub Actions의 구성 요소
GitHub Actions workflow를 설정하여 저장소에서 이벤트가 발생할 때 트리거되도록 할 수 있으며, 이는 풀 리퀘스트가 열릴 때 또는 이슈가 생성될 때와 같은 이벤트 입니다.
이벤트가 트리거되어 Runner 1이 Job 1을 실행하고, 이는 Runner 2를 트리거하여 Job 2를 실행하는 이벤트 트리거의 다리어그램입니다. 각 작업은 여러 스텝으로 나뉩니다.
workflow
workflow는 구성 가능한 자동화된 프로세스로 하나 이상의 작업을 실행합니다.
workflow는 저장소에 체크인된 YAML 파일에 의해 정의되며, 저장소 내에서 이벤트에 의해 트리거될 것이거나 수동으로 트리거하거나 정의된 일정에 따라 실행됩니다.
workflow는 저장소의 .github/workflows 디렉토리에 정의됩니다. 저장소에는 서로 다른 작업 집합을 수행할 수 있는 여러 워크플로우가 있을 수 있습니다.
예를들어, 풀 리퀘스트를 빌드하고 테스트하는 워크플로우, 릴리스가 생성될 때마다 애플리케이션을 배포하는 다른 워크플로우, 누군가 새 이슈를 열 때마다 레이블을 추가하는 워크플로우 등이 있을 수 있습니다.
또한 다른 워크플로우 내에서 워크플로우를 참조할 수 있습니다.
event
event는 저장소에서 발생하는 특정 활동으로, 워크플로우 실행을 트리거하는 요소입니다.
예를 들어, 활동은 누군가가 풀 리퀘스트를 생성하거나 이슈를 열거나 저장소에 커밋을 푸시할 때 GitHub에서 시작될 수 있습니다.
workflow를 트리거하는 데 사용할 수 있는 event의 전체 목록은 workflow를 트리거하는 event 를 참조해주세요.
Job
Job은 동일한 실행 환경에서 실행되는 워크플로우 내의 스텝들(step)의 집합입니다. 각 스텝(step)은 실행될 셸 스크립트이거나 실행할 작업(action)입니다. 스텝은 순서대로 실행되며 서로 의존적입니다. 각 스텝은 동일한 실행 환경(runner)에서 실행되기 때문에 한 스텝에서 다른 스텝으로 데이터를 공유할 수 있습니다. 예를 들어, 애플리케이션을 빌드하는 단계 다음에 해당 애플리케이션을 테스트하는 단계를 가질 수 있습니다.
Job은 다른 작업과의 의존성을 구성할 수 있으며, 기본적으로 Job은 의존성이 없고 서로 병렬로 실행됩니다. Job이 다른 Job에 의존성을 가지면 해당 작업은 의존 작업이 완료될 때까지 기다려야 합니다.
Actions
Action은 GitHub Actions 플랫폼을 위한 사용자 정의 애플리케이션으로, 복잡하지만 자주 반복되는 작업을 수행합니다. Action을 사용하여 워크플로우 파일에서 작성해야 하는 반복 코드 양을 줄일 수 있습니다. Action은 깃허브에서 자신의 깃 레포지토리를 가져오거나 빌드 환경에 맞는 올바른 도구 체인을 설정하거나 클라우드 공급업체에 대한 인증을 설정하는 등의 작업을 수행할 수 있습니다.
자신만의 action을 작성하거나 GitHub Marketplace의 워크플로에 사용할 action을 찾을 수 있습니다.
Runners
Runner는 워크플로우가 트리거될 때 해당 워크플로우를 실행하는 서버입니다. 각 Runner은 한 번에 하나의 Job만 실행할 수 있습니다.
깃허브는 Ubuntu, Linux, Microsoft windows 및 MacOS runners를 제공하여 워크플로우를 실행합니다. 각 워크플로우 실행은 새롭게 생성된 가상 머신에서 실행됩니다.
Reference
'git > git' 카테고리의 다른 글
[Git] git tag (0) | 2023.06.30 |
---|---|
[Git] git log (0) | 2023.06.29 |
[Git] git commit template 설정하기 (0) | 2023.04.24 |