创建 .gitlab-ci.yml 文件
This commit is contained in:
47
.gitlab-ci.yml
Normal file
47
.gitlab-ci.yml
Normal 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
|
||||
Reference in New Issue
Block a user