12.29 TIL - github actions CI 해보기

이서준·2025년 12월 29일

TIL

목록 보기
20/24

CI

  • 지속적인 통합
  • 버그 수정, 새로운 기능 개발한 코드가 주기적으로 병합되는 것
  • 코드가 합쳐질 때마다 자동으로 검증해주는 안전장치

필요한 이유

  1. 코드 변경 사항을 주기적으로 빈번하게 merge
  2. 통합 단계의 자동화

장점

  1. 개발 생산성 향상
  2. 문제점을 빠르게 발견
  3. 코드의 퀄리티 향상

GitHub Actions

  • Github에서 제공하는 CI/CD 도구
  • 별도 서버 필요 없음
  • Github Repository에 설정 파일만 추가하면 사용 가능

Github Actions CI 구성

name: Run Test

on:
  pull_request:
    branches: [ develop ]
  push:
    branches: [ develop ]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      # 1. 소스 코드 체크아웃
      - name: Checkout source
        uses: actions/checkout@v4

      # 2. JDK 17 설정
      - name: Set up JDK 17
        uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: 17
          cache: gradle

      # 3. Gradle 실행 권한 부여
      - name: Grant execute permission
        run: chmod +x gradlew

      # 4. 테스트 실행
      - name: Run unit tests
        run: ./gradlew test
  • name: Run Test : actions 이름 github 페이지에서 확인 가능
  • on : Event Trigger 특정 액션 설정
    • pull_request : 해당 Branch에서 일어나면 동작을 수행
    • push : 해당 Branch에서 일어나면 동작을 수행
  • jobs : 실제 어떤 작업을 실행할 지에 대한 명시
  • steps : 실제 실행 스크립트 (순서대로 실행)
  • uses : github actions에서 제공하는 플러그인을 실행
  • with : plugin 파라미터

동작 흐름

  1. develop 브랜치에 push 또는 PR 생성
  2. github Actions 실행
  3. ubuntu 환경에서 JDK 17 설치
  4. Gradle 테스트 실행
  5. 테스트 실패하면 PR merge 불가
  6. 테스트 성공하면 다음 단계(CD) 진행 가능

정리

  • CI는 코드 품질을 자동으로 보장하기 위한 과정
  • github actions을 사용하면 쉽게 CI 구성 가능
  • CI는 빠른 피드백이 중요해서 test 위주로 구성
  • 이 단계가 있어야 CD를 자연스럽게 확장 가능

실제 한 것

profile
Allons-y

0개의 댓글