본문 바로가기
Program Development Tips/GitHub Actions

Github Action이란 무엇일까?

by Maccrey Coding 2025. 2. 22.
반응형

GitHub Actions는 GitHub에서 제공하는 CI/CD(Continuous Integration/Continuous Delivery)자동화 워크플로우 서비스를 말합니다. 이 서비스를 사용하면 소프트웨어 개발 프로세스를 자동화하고, 빌드, 테스트, 배포 등의 작업을 효율적으로 처리할 수 있습니다.

GitHub Actions의 주요 특징

  1. 자동화 워크플로우
    GitHub Actions는 워크플로우(Workflow)라는 단위로 자동화 작업을 정의할 수 있습니다. 워크플로우는 YAML 형식으로 작성되며, GitHub 리포지토리의 .github/workflows 폴더에 배치됩니다.

  2. 이벤트 기반
    GitHub Actions는 특정 이벤트(Event)가 발생할 때마다 자동으로 실행됩니다. 예를 들어, 코드가 푸시되었을 때, 풀 리퀘스트가 생성되었을 때, 또는 특정 시간에 자동으로 실행될 수 있습니다.

  3. 빌드, 테스트, 배포
    Actions는 소프트웨어의 빌드(Build), 테스트(Test), 배포(Deploy) 작업을 자동으로 처리할 수 있습니다. 예를 들어, 코드 변경이 있을 때마다 자동으로 테스트를 실행하고, 빌드를 진행한 후 배포하는 워크플로우를 설정할 수 있습니다.

  4. 커스터마이징 가능
    GitHub Actions는 여러 액션(Action)을 사용하여 기능을 확장할 수 있습니다. 이 액션들은 GitHub Marketplace에서 제공되며, 직접 커스터마이징도 가능합니다.

  5. Docker 및 다양한 환경 지원
    Docker 컨테이너를 사용해 환경을 설정하거나, 다양한 운영체제(Windows, macOS, Linux)에서 실행할 수 있습니다.

GitHub Actions 사용 예시

1. 기본 워크플로우 파일 예시
.github/workflows 폴더에 YAML 파일을 작성하여 워크플로우를 정의합니다. 아래는 push 이벤트에 반응하여 테스트를 실행하는 예시입니다.

name: CI Workflow

on:
  push:
    branches:
      - main  # main 브랜치에 푸시되면 실행

jobs:
  build:
    runs-on: ubuntu-latest  # Ubuntu에서 실행
    steps:
      - name: Checkout code
        uses: actions/checkout@v2  # 코드 체크아웃

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.8'  # Python 3.8 사용

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt

      - name: Run tests
        run: |
          pytest  # 테스트 실행

이벤트 정의
GitHub Actions는 다양한 이벤트를 지원합니다. 예를 들어, push, pull_request, schedule 등이 있습니다.

  • push: 코드가 푸시될 때 워크플로우가 실행됩니다.
  • pull_request: 풀 리퀘스트가 열릴 때 실행됩니다.
  • schedule: 특정 시간에 자동으로 실행됩니다.
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
  schedule:
    - cron: '0 0 * * *'  # 매일 자정에 실행

 

2. 작업(Job) 및 단계(Step)
GitHub Actions의 워크플로우는 여러 작업(job)으로 나뉩니다. 각 작업은 여러 단계(step)로 구성되며, 각 단계는 특정 명령을 실행합니다.

  • jobs: 여러 작업을 정의합니다.
  • steps: 각 작업에서 실행할 명령을 정의합니다.

3. GitHub Marketplace에서 액션 사용하기
GitHub Marketplace에는 다양한 액션이 존재합니다. 예를 들어, 코드 배포, 코드 품질 검사, Slack 알림 등을 자동화할 수 있는 액션을 사용할 수 있습니다.

GitHub Actions의 이점

  1. 효율적인 CI/CD
    자동화된 테스트 및 빌드를 통해 코드 품질을 높이고, 배포를 빠르게 할 수 있습니다.
  2. 다양한 환경 지원
    다양한 운영체제에서 동작하며, Docker를 이용한 환경 설정도 가능합니다.
  3. 강력한 통합
    GitHub 내에서 모든 CI/CD 작업을 처리할 수 있기 때문에, 외부 도구를 사용하는 번거로움이 줄어듭니다.
  4. 유연한 커스터마이징
    필요에 맞는 액션을 직접 작성하거나 Marketplace에서 다른 사람들의 액션을 쉽게 사용할 수 있습니다.
  5. 무료 사용
    GitHub Actions는 오픈소스 프로젝트와 일정한 조건을 충족하는 계정에 대해 무료로 제공됩니다.

GitHub Actions 시작하기

  1. GitHub 리포지토리에서 .github/workflows 폴더를 만들고, 그 안에 YAML 파일을 작성하여 워크플로우를 정의합니다.
  2. GitHub Actions를 설정하면, 리포지토리에서 변경이 있을 때마다 자동으로 워크플로우가 실행됩니다.
  3. 실행 결과는 GitHub의 Actions 탭에서 확인할 수 있습니다.

 

GitHub Actions는 GitHub 리포지토리에서 CI/CD 파이프라인을 쉽게 설정하고 자동화할 수 있는 강력한 도구입니다. 다양한 이벤트를 기반으로 워크플로우를 설정하고, GitHub 내에서 모든 작업을 처리할 수 있습니다. 이를 통해 코드 품질을 높이고 배포 과정을 효율적으로 관리할 수 있습니다.

 

구독!! 공감과 댓글,

광고 클릭은 저에게 큰 힘이 됩니다.

 

Starting Google Play App Distribution! "Tester Share" for Recruiting 12 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

 

반응형