728x90
GitHub Actions는 GitHub에서 제공하는 CI/CD(Continuous Integration/Continuous Deployment) 및 자동화 도구이다. 이를 통해 코드의 빌드, 테스트, 배포, 워크플로우 자동화 등을 설정하고 실행할 수 있다. 간단히 말해 GitHub 저장소와 밀접하게 통합된 자동화 플랫폼이다.
주요 특징
- 이벤트 기반
- GitHub Actions는 특정 이벤트(예: 코드 푸시, Pull Request 생성, 이슈 생성 등)를 트리거로 하여 워크플로우를 실행한다.
- 예) push, pull_request, schedule 등 다양한 이벤트를 지원한다.
- 워크플로우(Workflow)
- 워크플로우는 하나 이상의 작업(Job)으로 구성되며 YAML 파일로 정의된다.
- .github/workflows/ 디렉토리에 저장된다.
- 예) build.yml, test.yml 같은 파일로 설정
- 잡(Job)
- 워크플로우 내에서 실행되는 개별 작업 단위이다.
- 각 잡은 병렬 또는 순차적으로 실행할 수 있다.
- 스텝(Step)
- 잡 내에서 실행되는 세부 작업
- 커맨드라인 명령어 또는 미리 정의된 액션(Action)을 실행한다.
- 액션(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은 명령어 실행
주요 사용 사례
- CI/CD 파이프라인
- 코드 푸시 후 자동으로 빌드 및 테스트 실행
- 성공 시 프로덕션 서버에 배포
- 코드 품질 관리
- 코드 린트 및 정적 분석 도구 실행
- 릴리즈 자동화
- 새로운 릴리즈 태그 생성 시 패키지 빌드 및 배포
- 테스트 자동화
- 다양한 OS, 브라우저 환경에서의 테스트 실행
- 커스텀 워크플로우
- 특정 작업(예: 매일 밤 데이터 백업) 자동화
장점
- 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 |