1. 개요
Github Action이라 함은 Github에서 제공하는 CI/CD를 위한 서비스입니다. Github Repository에 저장하는 모든 파일들을 대상으로 사용할 수 있으며, 개인은 누구나 무료로 사용할 수 있는 서비스이기 때문에 많이들 사용하고 있는 서비스입니다. Github Action 사용 시 우리가 Commit/Push 등으로 코드 Repository에 반영할 시에 Github Action에 작성한 명령어를 토대로 코드의 품질 검사 및 효용성 테스트 등을 진행하여 새로 반영하는 작업이 내 프로젝트에 적합하게 이루어졌는지 자동으로 테스트할 수 있습니다. 개발자는 이를 통해 재배포와 같은 번거로운 작업들을 건너뛰고, 개발 등의 본업에 집중할 수 있게 됩니다.
2. 구성요소
Workflows
워크플로는 Github Action의 가장 상위개념으로, 일반적으로는 ".github/workflows/<name>.yml" 폴더에 있습니다. 이 워크플로에는 최소한 하나의 작업을 포함하고 있어야 합니다.
on:
push:
branches: [브랜치 명]
jobs:
# ...(생략)...
Events
워크플로를 시작하는 트리거입니다.
Jobs
워크플로 내에서 실행되는 개별 작업의 단위입니다. 이는 Github Action에서 제공하는 Runner라는 이름의 가상머신, 또는 컨테이너에서 실행됩니다. 작업은 종속성에 따라 병렬적/순차적으로 실행됩니다.
jobs:
job1:
# job1 상세명령
job2:
# job2 상세명령
job3:
# job3 상세명령
Steps
작업이 상당히 많을 시 작업을 단계별로 쪼개는 단위입니다. 각 Steps는 명령어를 수행하거나, 혹은 Github Action에서 기본 제공하는 코드(Action)를 수행하기도 합니다. 커맨드나 스크립트를 실행할 때는 run 속성을 사용하며, 액션을 사용할 때는 uses 속성을 사용합니다.
steps:
- uses: actions/checkout@v2 # Github Action에서 공유하는 작업
- name: Set up Python $
uses: actions/setup-python@v1
with:
python-version: $
- name: Install Dependencies
run: |
export DJANGO_SETTINGS_MODULE=backend.settings.dev
python -m pip install --upgrade pip
pip install -r requirements.txt
Actions
Github Action 사용 시 자주 사용하는 코드들을 Github 측에서 쉽게 사용하게끔 제공하는 코드입니다. 다양한 Actions들을 보고 싶다면, Github Marketplace를 이용해주시면 됩니다. 위 코드에 있는 actions/checkout는 공부하면서 찾아보니 상당히 많이 사용되는 것을 확인할 수 있었으니, 어떻게 저렇게 쓰고 싶은지 궁금하다면 저 코드 그대로 검색만 하셔도 나옵니다.
Runners
작업이 실행되는 가상머신 및 Github Action 자체 호스팅 공간입니다. Github는 Windows, Mac, Linux 등 다양한 운영체제를 이미 제공하지만, 작업 중 특정 작업은 어떠한 운영체제에서는 제한될 수 있는 경우가 있기 때문에 모든 작업을 수행할 수 있는 runners를 제공합니다.
환경 변수 및 비밀 변수
워크플로를 짜다 보면, 예를 들어 AWS 계정이나 Docker ID/PW와 같은 민감한 정보를 작성하는 경우가 생기게 됩니다. Github은 Public 모드로 모두에게 공개하는 옵션이 있기 때문에 이들을 모두 비밀 변수로 만들어 반드시 Gitignore를 통해 특정 파일에 숨겨야 합니다. 그러나 이 특정 파일은 Github에서 인지할 수 없기 때문에 이 환경 변수와 비밀 변수를 따로 저장할 공간을 Github에서 제공합니다. 변수 설정 경로는 아래와 같습니다.
Project Repository - Settings - Secrets and variables - Actions
3. 출처
https://www.youtube.com/watch?v=VgRW3dFTW2Q
https://www.youtube.com/watch?v=x-0Du3TQsLM&t=26s
감사합니다 :)
'github' 카테고리의 다른 글
[Git] Submodule 사용하기 (0) | 2024.04.17 |
---|---|
VS CODE로 git branch, pull request 기능 실습해보기 (0) | 2023.04.11 |
sourcetree를 이용한 git branch (0) | 2023.03.25 |
sourcetree를 이용한 git push, pull (0) | 2023.03.24 |
sourcetree를 이용한 버전 관리와 commit 3단계 (1) | 2023.03.24 |