github

Github Action

JM Lee 2024. 8. 6. 03:48
728x90

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

https://somaz.tistory.com/213

 

1. Github Action이란?

Overview 오늘은 Github Action에 대해서 공부해보려고 한다. Github Action이란? GitHub Actions는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 및 지속적 배포(CI/CD) 플랫폼이다. 리포지

somaz.tistory.com

 

감사합니다 :)