Satellite Logo
곽선생 Tech Blog
Published on

github action 사용법

Authors

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"

모범 사례

  1. 재사용 가능한 워크플로우 작성

    • 공통 작업은 별도의 워크플로우로 분리
    • Marketplace의 검증된 액션 활용
  2. 보안 고려사항

    • 민감한 정보는 반드시 Secrets 사용
    • 최소 권한 원칙 적용
  3. 성능 최적화

    • 병렬 작업 활용
    • 캐시 사용으로 빌드 시간 단축

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