# GitHub Actions 번역하며 요약하기
0. Workflow
- 깃헙 프로젝트를 빌드, 테스트, 패키지, 배포할 수 있도록 레파지토리에서 설정할 수 있는 자동화된 프로세스이다
- 레파지토리에서 직접 빌드할 수 있으며, Actions 탭에서 활성화 시키면 .yml 확장자의 워크플로우 파일을 작성해야한다
0-1. Workflow 파일
- 워크플로우 구성을 정의하는 .yml/.yaml 확장자를 가진 파일
- 레파지토리의 root 에 있는 .github/workflows 경로에 생성
- 내용은 하나 이상의 Job 으로 구성되며, Event 로 스케줄링되거나 활성화될 수 있다
0-2. Workflow 실행
- 미리 정의한 Event 가 발생할 때 실행되는 워크플로우 인스턴스
- 각 워크플로우 실행에 대한 Job, Actions, 로그와 상태를 볼 수 있다
1. Event
- 워크플로우가 실행되게 하는 트리거
- 예를들어 누군가 레파지토리에 push 하거나 issue 생성 또는 PR 을 생성할 때 발생할 수 있도록 설정 가능
- 레파지토리 webhook 을 사용하여 외부 이벤트가 발생할 때 워크플로우 구성도 가능
2. Runners
- 깃헙 액션 Runner 어플리케이션이 설치된 모든 머신
- Gihub-hosted Runners 를 사용하거나 또는 Self-hosted Runners 를 설정할 수 있다
- Runners 는 사용가능한 Job 을 실행하고 진행상황, 로그, 최종 결과를 깃헙에 보고한다
- Runners 는 한번에 하나의 Job 을 실행한다
2-1. GitHub-hosted runners
- 깃헙은 Linux, Windows, Mac Runners 를 호스팅한다
- Job 은 일반적으로 사용되는 사전 설치된 소프트웨어를 포함하는 가상 머신의 새로운 인스턴스에서 실행된다
- 깃헙은 GitHub-hosted runners 의 모든 업그레이드 및 유지보수를 수행하며, 하드웨어 구성은 사용자 정의를 할 수 없다
2-2. Self-hosted runners
- Self-hosted runners 가 설치되어 관리하고 유지하는 머신
- GitHub-hosted runners 제공하는 것보다 하드웨어, OS, 소프트웨어 도구를 더 많이 제공한다
- 더 많은 Job 을 실행하기 위해 더 좋은 처리 능력이나 메모리를 가진 맞춤형 하드웨어 구성을 만들고, 로컬 네트워크에서 사용할 수 있는 소프트웨어를 설치하고, GitHub-hosted runners 가 제공하지 않는 운영체제를 선택할 수 있다
3. 워크플로우 파일 구성
3-1. On
- 워크플로우 실행을 위한 이벤트를 정의
- 예를들어 develop 브랜치에 push 가 일어났을 때 워크플로우를 실행한다 라고 정의할 수 있음
3-2. Jobs
- 동일한 runner 에서 실행되는 Step 으로 이루어진 상위 세트이다 (Job > Step)
- Job 은 dependency rule 이 설정되어 있지 않으면 기본적으로 병렬로 실행된다
- Job 이 Workflow 파일 에서 실행되는 방법에 대한 dependency rule 을 정의하면 순차적으로 실행된다
- 예를들어 워크플로우가 빌드, 테스트 두 개의 순차 Job 이 있으면, 빌드 Job이 실패하면 테스트 Job 이 실행되지 않는다.
- GitHub-hosted runners 의 경우 워크플로우의 각 Job 은 가상 환경의 새로운 인스턴스에서 실행된다
3-3. Steps
- Job 은 하나 이상의 Step 으로 구성하며, 각 Step 은 동일한 runner 에서 실행된다
- Command 또는 Action 을 실행할 수 있는 개별 작업이다
3-4. Action
- Step 으로 구성된 Job 을 만드는 개별 작업으로 워크플로우의 가장 작은 구성요소이다
- 본인의 Action 을 만들 수 있고, 깃헙 커뮤니티에서 공유된 Action 을 사용할 수 있으며 공개된 Action 을 커스터마이징 할 수 있다
- 워크플로우에서 Action 을 사용하려면 반드시 Step 을 포함해야 한다
4. Artifact
- 코드를 빌드, 테스트 할 때 생성된 파일로 바이너리 또는 패키지 파일, 테스트 결과, 스크린샷, 로그파일이 포함될 수 있다
- 생성된 워크플로우 실행과 연관되어 있으며 다른 Job 에서 사용할 수 있다
'기타개발 > GitHub Actions' 카테고리의 다른 글
GitHub Actions #6 - Creating and storing encrypted secrets (0) | 2020.03.29 |
---|---|
GitHub Actions #5 - Build and upload debug apk (0) | 2020.03.28 |
GitHub Actions #4 - Managing a workflow run (0) | 2020.03.27 |
GitHub Actions #3 - Starting with preconfigured workflow templates (0) | 2020.03.26 |
GitHub Actions #1 - About GitHub Actions (0) | 2020.03.24 |
댓글