stages:
- build
- package
- deploy
cache:
paths:
- target
# 基础构建阶段
build:
stage: build
before_script:
- echo "开始构建项目..."
script:
- echo "正在执行 mvn clean install..."
after_script:
- echo "构建完成..."
#when: manual #手动
# when: delayed # 延迟执行,默认延迟5秒
# start_in: 5s
# when: on_success #当前面成功了运行
# when: on_failure #当前面失败了
retry: 2 #如果错误了。重试次数。如果任务失败,将重试的次数。默认为0次,最多可重试2次(总共执行3次)
timeout: 1h 10m #超时1小时10分钟
# parallel: 5 #并行执行任务数。
rules:
- if: $CI_COMMIT_REF_NAME == "main"
# when: always
# - changes: # 指定哪些文件有变化
# - pom.xml
allow_failure: true #允许作业失败,false不允许失败,不阻塞后面的作业
tags:
- java # ✅ 指定必须由带有 'java' 标签的 Runner 执行
# 打包阶段
package:
stage: package
script:
- echo "开始打包项目..."
rules:
- if: $CI_COMMIT_REF_NAME == "main"
artifacts: # 制品:打包文件
name: "my-project-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: on_success
paths:
- target/*.jar
tags:
- java # 指定必须由带有 'java' 标签的 Runner 执行
# 部署
deploy_staging:
stage: deploy
script:
- echo "部署到测试环境..."
environment: staging
rules:
- if: $CI_COMMIT_REF_NAME == "main"
tags:
- java # 指定必须由带有 'java' 标签的 Runner 执行