프로필

프로필 사진
Popomon
Frontend Developer
(2020/12 ~)

    카테고리

    포스트

    [Github 액션 만들기] Github Actions 의 구성요소

    2021. 7. 10. 15:35

    꿈가게: To Do List - iOS

    꿈가게: To Do List - Android

    Github Actions 속성들에 대해서 알아보기 이전에 우선 어떤 구조로 구성되어 있는지를 먼저 살펴보겠습니다.

    Github Actions 구성요소

    깃헙 액션의 사용 목적은 빌드/테스트/패키지/릴리즈 와 같은 작업을 할 때, 쉘 명령어를 추가하여 내가 원하는 작업을 몇 개 더 실행하는 것입니다.

    액션 (Action)

    이 때, 내가 추가할 작업의 단위를 액션(Action)이라고 합니다. 액션은 또다른 액션을 포함할 수 있고, 단순히 쉘 명령어 한줄 일 수도 있습니다.

    Action 1 - 시작

    스텝 (Step)

    여러개의 액션을 하나의 그룹으로 묶어서 스텝(Step)이라고 부릅니다. 하나의 작업(Job)에 속해있는 스텝은 동일한 러너(Runner) 에서 동작하기 때문에 서로 데이터를 공유할 수 있습니다.

    Step 1

    - Action 1 - 시작

    - Action 2 - 종료

    작업 (Job)

    여러개의 스텝을 그룹으로 묶어서 작업(Job)이라고 부릅니다. 스텝 안에 있는 액션은 순서대로 진행되는 반면, 작업은 여러개가 동시에 실행됩니다. 하지만, 옵션을 통해서 순차적으로 실행하도록 설정할 수 있습니다.

    Job 1

    - Step 1

    -- Action 1 - 시작

    -- Action 2 - 종료

    워크플로우 (Workflow)

    이러한 작업이 모여서 하나의 워크플로우(Workflow)를 이루게 됩니다. 실제 오픈소스 프로젝트에서는 어떻게 워크플로우를 나누고 있는지 살펴보겠습니다. ci(빌드 및 배포), deploy-docs(가이드 문서 배포) ... 등 여러가지 워크플로우 파일을 정의해 두고 사용중인 것을 확인할 수 있습니다!
    (나머지 워크플로우는 뭔지 모르겠어요 ;;)

    러너 (Runner)

    러너(Runner)는 깃허브 러너 애플리케이션이 설치되어있는 서버입니다. 깃허브에서 제공하는 러너 서버 호스팅을 구매하여 사용할 수도 있고, 개인적으로 AWS와 같은 서버를 두고, 깃허브 러너 서버를 만들 수도 있습니다. 모든 작업(Job)은 이 러너에서 동작하게 됩니다.

    깃허브에서는 무료로 깃허브 러너 애플리케이션 서버를 제공하고 있으니 워크플로우 설정 파일에서(.yml) 원하는 서버에 맞게 인스턴스 타입을 명시해 주면 이용이 가능합니다.

     

     

    About GitHub-hosted runners - GitHub Docs

    A GitHub-hosted runner is a virtual machine hosted by GitHub with the GitHub Actions runner application installed. GitHub offers runners with Linux, Windows, and macOS operating systems. When you use a GitHub-hosted runner, machine maintenance and upgrades

    docs.github.com

    만약 별도의 서버에서 깃허브 러너 애플리케이션을 설치하여 사용하기를 원하신다면, 운영체제의 제한이 있기 때문에 다음 링크에서 운영체제의 목록을 확인해 주시기 바랍니다.

    깃허브 러너 서버로 사용 가능한 운영체제

     

    About self-hosted runners - GitHub Docs

    Self-hosted runners offer more control of hardware, operating system, and software tools than GitHub-hosted runners provide. With self-hosted runners, you can choose to create a custom hardware configuration with more processing power or memory to run larg

    docs.github.com