创建 .gitlab-ci.yml 文件

This commit is contained in:
2024-04-16 15:14:30 +08:00
parent 048521d334
commit a8042d1384

47
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,47 @@
stages:
- package
- build_image
package:
stage: package
# 当默认分支有提交或合并请求时,执行 package 阶段
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
- if: $CI_COMMIT_TAG
# package 阶段使用 gradle 进行编译
image: gradle:8.7.0-jdk21
cache:
paths:
- .gradle
before_script:
- GRADLE_USER_HOME=".gradle"
- export GRADLE_USER_HOME
script:
- echo "Gradle building started..."
- gradle bootJar
- cp build/libs/*.jar ./application.jar
- echo "Extract jar file..."
- java -Djarmode=layertools -jar application.jar extract --destination extracted
artifacts:
paths:
- extracted
build_image:
stage: build_image
# 当有分支打标签时,执行 package 和 build_image 阶段
rules:
- if: $CI_COMMIT_TAG
# build_image 阶段使用 docker 进行构建
image: docker:26.0.1-dind
services:
- docker:26.0.1-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
script:
- echo "Docker build image..."
- docker login -u $REGISTRY_USER -p $REGISTRY_PASSWORD $REGISTRY_HOST
- image_name=$REGISTRY_HOST/fortern/message-api:$CI_COMMIT_TAG
- docker build -t $image_name .
- echo "Docker push image..."
- docker image push $image_name