CS

Github Actions 개념, 특징

TedDev 2024. 12. 10. 14:17
728x90

GitHub Actions는 GitHub에서 제공하는 CI/CD(Continuous Integration/Continuous Deployment) 및 자동화 도구이다. 이를 통해 코드의 빌드, 테스트, 배포, 워크플로우 자동화 등을 설정하고 실행할 수 있다. 간단히 말해 GitHub 저장소와 밀접하게 통합된 자동화 플랫폼이다.

 

주요 특징

  1. 이벤트 기반
    • GitHub Actions는 특정 이벤트(예: 코드 푸시, Pull Request 생성, 이슈 생성 등)를 트리거로 하여 워크플로우를 실행한다.
    • 예) push, pull_request, schedule 등 다양한 이벤트를 지원한다.
  2. 워크플로우(Workflow)
    • 워크플로우는 하나 이상의 작업(Job)으로 구성되며 YAML 파일로 정의된다.
    • .github/workflows/ 디렉토리에 저장된다.
    • 예) build.yml, test.yml 같은 파일로 설정
  3. 잡(Job)
    • 워크플로우 내에서 실행되는 개별 작업 단위이다.
    • 각 잡은 병렬 또는 순차적으로 실행할 수 있다.
  4. 스텝(Step)
    • 잡 내에서 실행되는 세부 작업
    • 커맨드라인 명령어 또는 미리 정의된 액션(Action)을 실행한다.
  5. 액션(Action)
    • 특정 작업을 수행하는 재사용 가능한 구성 요소이다.
    • 예) 테스트, Docker 빌드, 배포 등
    • GitHub Marketplace에서 다양한 오픈소스 액션을 찾아 사용할 수 있다.

 

주요 구성 요소

name: CI Workflow

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Set up Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '16'

    - name: Install dependencies
      run: npm install

    - name: Run tests
      run: npm test
  • on : 워크플로우를 트리거하는 이벤트를 정의
  • jobs : 실행할 작업 정의
  • runs-on : 작업 실행 환경 설정 (예: ubuntu-latest, windows-latest 등)
  • steps : 개별 작업 단계. uses는 액션을 호출, run은 명령어 실행

 

주요 사용 사례

  1. CI/CD 파이프라인
    • 코드 푸시 후 자동으로 빌드 및 테스트 실행
    • 성공 시 프로덕션 서버에 배포
  2. 코드 품질 관리
    • 코드 린트 및 정적 분석 도구 실행
  3. 릴리즈 자동화
    • 새로운 릴리즈 태그 생성 시 패키지 빌드 및 배포
  4. 테스트 자동화
    • 다양한 OS, 브라우저 환경에서의 테스트 실행
  5. 커스텀 워크플로우
    • 특정 작업(예: 매일 밤 데이터 백업) 자동화

 

 

장점

  • GitHub와 깊은 통합성
  • 간단한 YAML 구문으로 설정 가능
  • GitHub Marketplace에서 다양한 재사용 가능한 액션 제공
  • 이벤트 기반 트리거 지원
  • 무료 티어에서 적절한 사용량 제공
반응형

'CS' 카테고리의 다른 글

SQL Injection  (1) 2024.10.22
Scale-Up vs Scale-Out, SPOF 정리  (1) 2024.10.21
Latency와 Bandwidth의 정의 및 관계  (0) 2024.09.20
Process와 Thread  (0) 2024.09.11