CI 파이프라인 구축 - KimGyuBek/Threadly GitHub Wiki
자동화된 CI 파이프라인을 구축하여 PR 생성 시 자동으로 빌드 및 테스트를 실행한다.
on:
pull_request:
types: [ opened, synchronize, reopened ]
branches: [ develop, master ]
paths-ignore:
# 제외 항목 설정
workflow_dispatch:-
pull_request-
opened: PR 생성 시 -
synchronize: 커밋 추가/변경 시 -
reopened: 닫힌 PR 재오픈 시
-
-
branches:develop,master에 대한 PR일때만 실행 -
paths-ignore: 문서나 설정 파일만 변경된 경우 생략 -
workflow_dispatch: 필요 시 수동 실행 지원
concurrency:
group: ci-pr-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true- PR 번호 또는 브랜치 단위 그룹핑
- 새로운 실행이 시작되면 이전 실행은 자동으로 취소
- 최신 커밋만 기준으로 테스트 실행
jobs:
test:
runs-on: ubuntu-latest- job name:
test - 실행 환경:
ubuntu-latest
1). 체크아웃
uses: actions/checkout@v4- 최신 커밋으로 체크아웃
2). JDK 설치
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'- java 환경 세팅
3). Gradle 환경 세팅 및 캐싱
uses: gradle/actions/setup-gradle@v4- 빌드 최적화를 위해 Gradle 캐시 적용
4). 테스트용 인프라 실행
run: docker compose -f ./infra/compose/test/docker-compose.yml up -d- Docker compose로 테스트에 필요한 인프라(Redis, DB 등) 실행
5). 테스트 실행
run: ./gradlew test --no-daemon- 테스트 실행
6). 모듈별 커버리지 Summary 생성
run: |
./gradlew printCoverageSummaryMarkdown --no-daemon
cat build/reports/coverage-summary.md >> $GITHUB_STEP_SUMMARY- 각 모듈별 Jacoco를 통해 측정된 테스트 커버리지를 측정 후 결과를 취합해 Github Actions의 Job Summary에 출력한다.
- 이를 통해 Workflow 실행 후 각 모듈이 테스트 커버리지를 확인 가능
7). 테스트 레포트 업로드
uses: actions/upload-artifact@v4
with:
name: test-report
path: ./threadly-apps/app-api/build/reports/tests/test- 테스트 결과를 Artifact로 저장해 이후 workflow 종료 후에도 확인 가능
8)테스트 인프라 종료
run: docker compose -f ./infra/compose/test/docker-compose.yml down- 실행했던 Docker Compose 리소스 정리