-
Notifications
You must be signed in to change notification settings - Fork 2
CI ( 지속적 통합 )
김규성(LUKAS) edited this page Sep 2, 2023
·
1 revision
빌드 / 테스트 자동화를 통한 지속적인 통합
커밋할 때마다 빌드 및 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인한 문제가 있는지 없는지 체크한다.
github/workflows/
에 github action flow 를 담은 YAML 파일을 추가한다.
name: CI 빌드 테스트 자동화
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 체크아웃
uses: actions/checkout@v3
- name: 서브모듈 레파지토리 가져오기
uses: actions/checkout@v3
with:
token: ${{ secrets.SUBMODULE_TOKEN }}
submodules: recursive
- name: JDK 11 설치
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
- name: Gradle 캐싱
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Gradle 명령 실행을 위한 권한을 부여
run: chmod +x gradlew
- name: Gradle 빌드
uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 # v2.6.0
with:
arguments: build
- name: 서브모듈 레파지토리 가져오기
uses: actions/checkout@v3
with:
token: ${{ secrets.SUBMODULE_TOKEN }}
submodules: recursive
현재 사용하는 서브 모듈
은 다른 GIT 저장소를 현재 저장소의 하위 디렉토리로 포함하는 GIT의 버전 관리 기능 중 하나로 프로젝트에서 사용되는 중요한 설정정보들을 담고 있다. 따라서 빌드 테스트를 수행할 때마다 최신 코드를 가져오도록 업데이트하는 것이 중요하다.
현재 저장소가 아닌 다른 저장소에 위치해 있으므로 접근할 수 있는 토큰
이 필요한데, 저장소의 권한이 담겨 있는 토큰 값을 그대로 노출 시킬 수는 없으니, 깃헙에서 제공하는 secret token 을 활용하여 주입하도록 한다.