본문 바로가기
기타개발/GitHub Actions

GitHub Actions #2 - Core concepts

by 궝테스트 2020. 3. 25.

# GitHub Actions 번역하며 요약하기

https://help.github.com/en/actions/getting-started-with-github-actions/core-concepts-for-github-actions

 

Core concepts for GitHub Actions - GitHub Help

Core concepts for GitHub Actions Below is a list of common GitHub Actions terms we use across our sites and GitHub Actions documentation. GitHub Actions is available with GitHub Free, GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub One. GitHub

help.github.com

 

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 에서 사용할 수 있다

댓글