- Published on
github action 사용법
- Authors
- Name
- 곽선생
- @neochime
GitHub Actions 완벽 가이드: 초보자를 위한 자동화 워크플로우 설정하기
GitHub Actions는 코드 저장소에서 빌드, 테스트, 배포 등을 자동화할 수 있는 강력한 CI/CD 플랫폼입니다[2]. 이 글에서는 실제 사례를 통해 GitHub Actions의 기본 사용법을 알아보겠습니다.
GitHub Actions의 핵심 개념
워크플로우(Workflow): 자동화된 전체 프로세스를 의미합니다[2]. 이벤트(Event): 워크플로우를 실행시키는 트리거입니다[2]. 잡(Job): 워크플로우 내의 독립적인 실행 단위입니다[2]. 스텝(Step): 각 잡 내에서 순차적으로 실행되는 작업들입니다[2]. 액션(Action): 재사용 가능한 작업 단위입니다[2].
기본 워크플로우 작성하기
가장 먼저 .github/workflows
디렉토리를 생성하고 YAML 파일을 작성합니다[4].
name: Basic Workflow
on: [push] # push 이벤트 발생 시 실행
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run a script
run: echo "Hello, GitHub Actions!"
실용적인 예제들
1. Node.js 프로젝트 테스트 자동화
name: Node.js CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v1
with:
node-version: '16'
- run: npm install
- run: npm test
2. Spring Boot 프로젝트 빌드 자동화
name: Spring Boot CI
on:
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v2
with:
java-version: '11'
- run: "./gradlew build"
3. Docker 이미지 빌드 및 푸시
name: Docker Build
on:
push:
branches: [main]
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
push: true
tags: user/app:latest
유용한 GitHub Actions 기능
환경 변수 사용하기
jobs:
example-job:
runs-on: ubuntu-latest
env:
DB_URL: ${{ secrets.DATABASE_URL }}
steps:
- name: Use environment variable
run: echo $DB_URL
조건부 실행
steps:
- name: Run only on main branch
if: github.ref == 'refs/heads/main'
run: echo "This runs only on main branch"
모범 사례
재사용 가능한 워크플로우 작성
- 공통 작업은 별도의 워크플로우로 분리
- Marketplace의 검증된 액션 활용
보안 고려사항
- 민감한 정보는 반드시 Secrets 사용
- 최소 권한 원칙 적용
성능 최적화
- 병렬 작업 활용
- 캐시 사용으로 빌드 시간 단축
GitHub Actions는 개발 워크플로우를 자동화하는 강력한 도구입니다[2]. 위의 예제들을 기반으로 자신의 프로젝트에 맞는 워크플로우를 구성해보세요.
Citations:
[1] https://docs.github.com/ko/actions
[2] https://hudi.blog/github-actions-concepts/
[3] https://www.youtube.com/watch?v=R8_veQiYBjI
[4] https://callmemaru.com/posts/github-actions-learning-2/
[5] https://everhour.com/blog/github-actions-tutorial/
[6] https://www.daleseo.com/github-actions-basics/
[7] https://docs.github.com/en/actions/about-github-actions/understanding-github-actions
[8] https://docs.github.com/ko/actions/use-cases-and-examples
[9] https://docs.github.com/ko/actions/about-github-actions/understanding-github-actions
[10] https://www.learnenough.com/blog/git-actions-tutorial