创建 .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