gitlab‐ci - jupark33/Spring GitHub Wiki
-
docker hub 가입
-
docker hub access token 생성
-
gitlab web > project > settings > cicd > variables
Add variables : DOCKER_USER
Add variables : DOCKER_ACCESS_TOKEN -
gitlab-ci.yaml 작성
stages:
- build
- test
- docker_build
- deploy
build-job:
stage: build
script:
- echo "Build"
- pwd
- whoami
- ./gradlew bootJar
- cp build/libs/*.jar D:/build_home/opt
- echo "Compile completed."
docker_build_job:
image: docker:latest
stage: docker_build
script:
- mkdir target
- cp D:/build_home/opt/*.jar target/echo.jar
- docker login -u $DOCKER_USER -p $DOCKER_ACCESS_TOKEN
- docker build -t $DOCKER_USER/echo:$CI_PIPELINE_ID .
- docker push $DOCEKR_USER/echo:$CI_PIPELINE_ID
unit-test-job:
stage: test
script:
- echo "Running Test"
- sleep 1
- echo "Code coverage"
lint-test-job:
stage: test
script:
- echo "Linting code"
- sleep 1
- echo "No lint"
deploy-job:
stage: deploy
environment: production
script:
- echo "Deploying"
- echo "Application"
- deployment.yaml의 이미지 태그 최신화
...
spec:
containers:
- name: echo
image: DOCKER_USER/echo:IMAGE_TAG
imagePullPolicy: Always
ports:
- containerPort: 8080
...
- sed 이용 ( 다음 단계는 Helm Chart를 이용해서 효율화 )
# CLI 실습
sed -i "s/IMAGE_TAG/new_tag/g" deployment.yaml
# gitlab-ci
sed -i "s/IMAGE_TAG/$CI_PIPELINE_ID/g" deployment.yaml