GitHub Actions는 GitHub에서 제공하는 CI/CD(Continuous Integration/Continuous Delivery) 및 자동화 워크플로우 서비스를 말합니다. 이 서비스를 사용하면 소프트웨어 개발 프로세스를 자동화하고, 빌드, 테스트, 배포 등의 작업을 효율적으로 처리할 수 있습니다.
GitHub Actions의 주요 특징
- 자동화 워크플로우
GitHub Actions는 워크플로우(Workflow)라는 단위로 자동화 작업을 정의할 수 있습니다. 워크플로우는 YAML 형식으로 작성되며, GitHub 리포지토리의 .github/workflows 폴더에 배치됩니다. - 이벤트 기반
GitHub Actions는 특정 이벤트(Event)가 발생할 때마다 자동으로 실행됩니다. 예를 들어, 코드가 푸시되었을 때, 풀 리퀘스트가 생성되었을 때, 또는 특정 시간에 자동으로 실행될 수 있습니다. - 빌드, 테스트, 배포
Actions는 소프트웨어의 빌드(Build), 테스트(Test), 배포(Deploy) 작업을 자동으로 처리할 수 있습니다. 예를 들어, 코드 변경이 있을 때마다 자동으로 테스트를 실행하고, 빌드를 진행한 후 배포하는 워크플로우를 설정할 수 있습니다. - 커스터마이징 가능
GitHub Actions는 여러 액션(Action)을 사용하여 기능을 확장할 수 있습니다. 이 액션들은 GitHub Marketplace에서 제공되며, 직접 커스터마이징도 가능합니다. - 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의 이점
- 효율적인 CI/CD
자동화된 테스트 및 빌드를 통해 코드 품질을 높이고, 배포를 빠르게 할 수 있습니다. - 다양한 환경 지원
다양한 운영체제에서 동작하며, Docker를 이용한 환경 설정도 가능합니다. - 강력한 통합
GitHub 내에서 모든 CI/CD 작업을 처리할 수 있기 때문에, 외부 도구를 사용하는 번거로움이 줄어듭니다. - 유연한 커스터마이징
필요에 맞는 액션을 직접 작성하거나 Marketplace에서 다른 사람들의 액션을 쉽게 사용할 수 있습니다. - 무료 사용
GitHub Actions는 오픈소스 프로젝트와 일정한 조건을 충족하는 계정에 대해 무료로 제공됩니다.
GitHub Actions 시작하기
- GitHub 리포지토리에서 .github/workflows 폴더를 만들고, 그 안에 YAML 파일을 작성하여 워크플로우를 정의합니다.
- GitHub Actions를 설정하면, 리포지토리에서 변경이 있을 때마다 자동으로 워크플로우가 실행됩니다.
- 실행 결과는 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
'Program Development Tips > GitHub Actions' 카테고리의 다른 글
GitHub Actions vs Jenkins vs GitLab CI: 어느 도구가 더 나을까? (1) | 2024.09.01 |
---|---|
GitHub Actions의 CI/CD 모니터링과 디버깅 방법 (0) | 2024.09.01 |
GitHub Actions: 나만의 액션 만들기 가이드 (2) | 2024.09.01 |
GitHub Actions 마켓플레이스 활용법 (0) | 2024.09.01 |
GitHub Actions를 활용한 자동 배포(CD) 설정 방법 (0) | 2024.08.31 |