본문 바로가기

Study

[내일배움캠프 TIL] 24일차 - CI, Github Actions로 CI 파이프라인 구축하기

728x90
반응형

CI가 무엇인지랑 Github Actions로 어떻게 파이프라인 구축할 수 있는지 간단하게 정리해보았습니다.

 

1. CI(Continuous Integration)란?

CI(지속적 통합)는 개발자들이 작업한 코드를 정기적으로 공용 저장소(Git 등)에 통합하고, 그때마다 자동으로 빌드와 테스트를 수행하는 프로세스를 말합니다.

  • 핵심 목적: 여러 명의 코드가 섞였을 때 발생하는 충돌을 빨리 찾고, 버그가 섞인 코드가 배포되지 않도록 방지하는 것입니다.
  • 성공 기준: "코드를 합쳤을 때 빌드가 깨지지 않고, 모든 테스트 케이스를 통과하는가?"

2. GitHub Actions로 CI 파이프라인 구축하기

GitHub Actions는 GitHub 저장소 내에서 특정 이벤트(Push, PR 등)가 발생했을 때 미리 정의된 작업(Workflow)을 실행해 주는 도구입니다.

① 설정 방법

프로젝트 루트 디렉토리에 .github/workflows/ 폴더를 만들고, .yml 파일을 생성합니다. (예: ci.yml)

② 파이프라인 구성 예시 (Java/Spring Boot 기준)

 
name: Java CI with Gradle

# 1. 언제 실행할 것인가? (Trigger)
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

# 2. 어떤 환경에서 무엇을 실행할 것인가? (Jobs)
jobs:
  build:
    runs-on: ubuntu-latest # 실행 환경 (Linux)

    steps:
    - uses: actions/checkout@v4 # 코드 가져오기

    - name: Set up JDK 17
      uses: actions/setup-java@v4 # 자바 설치
      with:
        java-version: '17'
        distribution: 'temurin'

    - name: Grant execute permission for gradlew
      run: chmod +x gradlew # 권한 부여

    - name: Build and Test with Gradle
      run: ./gradlew build # 빌드 및 테스트 실행 (가장 중요한 단계!)

3. 자동화 파이프라인의 흐름

  1. Code Push: 개발자가 로컬에서 작업 후 main 브랜치로 코드를 보냅니다.
  2. Workflow Trigger: GitHub Actions가 이를 감지하고 가상 서버(ubuntu)를 띄웁니다.
  3. Build & Test: 설정된 스크립트에 따라 JDK를 깔고, 의존성을 받고, 테스트 코드를 돌린 뒤 빌드합니다.
  4. Feedback: 만약 테스트가 실패하면 빨간색 X 표시와 함께 알림이 옵니다. 성공하면 초록색 체크 표시가 뜨며 안전하게 통합되었음을 알립니다.
반응형