728x90
목적
GitLab 에 개발 Repository 를 구성하고 산출물을 자동으로 유지하고 배포하기 위한 CI/CD 를 구성한다.
사전 조건
1. GitLab 저장소에 프로젝트를 구성한다.
2. Repository 의 최상위 path 에 ".gitlab-ci.yml" 파일을 생성한다.
3. CI/CD 를 구성하고자 하는 Job 을 계획한다. (저의 경우 Release Build, Running UnitTest, Publishing Maven 으로 구성 함)
.gitlab-ci.yml
image: jangrewe/gitlab-ci-android
before_script:
- export GRADLE_USER_HOME=$(pwd)/.gradle
- chmod +x ./gradlew
cache:
key: ${CI_PROJECT_ID}
paths:
- .gradle/
stages:
- build
- unitTest
- deploy
assembleRelease:
stage: build
script:
- ./gradlew assembleRelease ${specific_key}
artifacts:
paths:
- sdk/build/outputs/aar/
- build/kdoc/
testRelease:
stage: unitTest
script:
- ./gradlew testReleaseUnitTest ${specific_key}
artifacts:
paths:
- sdk/build/reports/tests/testReleaseUnitTest/
assemblePublish:
stage: deploy
script:
- ./gradlew publish ${specific_key}
only:
- main
job 구성요소
name | how to work |
image | CI 를 수행하고자 하는 docker 를 설정한다. 저의 경우 Android SDK 빌드를 위한 docker 를 설정 했다. (참고 : https://hub.docker.com/r/jangrewe/gitlab-ci-android) |
before_script | 각 stage 들의 script 를 수행하기 전 수행하는 동작이다. |
cache | 각 stage 들의 수행될 때 캐시되어야 할 목록 들이다. |
stages | job 이 실행되는 단계이다. 순서는 build -> unitTest -> deploy 순이다. |
assembleRelease testRelease assemblePublish |
stages 에서 선언한 job들을 custom name 화 한다. |
artifacts | job 성공 시 GitLab 에 첨부되어 download 할 수 있는 path 이다. |
only | job 동작 제한 설정이다. 향후 rules 로 변경하는 게 더 유연하다. |
728x90
'GitLab' 카테고리의 다른 글
[GitLab][CI/CD] 환경 변수 (0) | 2022.10.19 |
---|