mirror of
https://gitee.com/jzsw-it/yexuejc-base.git
synced 2026-10-25 17:20:19 +08:00
CI/CD 修正gitee流水线语法
This commit is contained in:
1 parent
52019c1ce4
commit
0b29e80813
8 files changed
+872
-219
No files matched your search
-219
@@ -1,219 +0,0 @@
|
|||||||
# Gitee Go CI/CD 配置
|
|
||||||
# Gitee CI 语法基于 GitLab CI,文件名必须为 .gitee-ci.yml
|
|
||||||
# 放置在项目根目录,推送后自动触发流水线
|
|
||||||
#
|
|
||||||
# 使用方式:
|
|
||||||
# 1. 开启 Gitee 仓库的 CI/CD 功能(管理 > CI/CD)
|
|
||||||
# 2. 确保 .gitee-ci.yml 在项目根目录
|
|
||||||
# 3. 推送代码后自动触发
|
|
||||||
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
- test
|
|
||||||
- quality
|
|
||||||
- security
|
|
||||||
- package
|
|
||||||
- release
|
|
||||||
|
|
||||||
variables:
|
|
||||||
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
|
|
||||||
|
|
||||||
cache:
|
|
||||||
key: "${CI_COMMIT_REF_SLUG}"
|
|
||||||
paths:
|
|
||||||
- .m2/repository/
|
|
||||||
|
|
||||||
# ============================================
|
|
||||||
# 构建阶段 — 根据分支自动选择 JDK
|
|
||||||
# ============================================
|
|
||||||
build:java21:
|
|
||||||
stage: build
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
script:
|
|
||||||
- ./mvnw -B clean compile
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/classes/
|
|
||||||
expire_in: 1 hour
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre21
|
|
||||||
|
|
||||||
build:java17:
|
|
||||||
stage: build
|
|
||||||
image: maven:3.9-eclipse-temurin-17
|
|
||||||
script:
|
|
||||||
- ./mvnw -B clean compile
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/classes/
|
|
||||||
expire_in: 1 hour
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre17
|
|
||||||
|
|
||||||
build:java11:
|
|
||||||
stage: build
|
|
||||||
image: maven:3.9-eclipse-temurin-11
|
|
||||||
script:
|
|
||||||
- ./mvnw -B clean compile
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/classes/
|
|
||||||
expire_in: 1 hour
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre11
|
|
||||||
|
|
||||||
build:java8:
|
|
||||||
stage: build
|
|
||||||
image: maven:3.9-eclipse-temurin-8
|
|
||||||
script:
|
|
||||||
- ./mvnw -B clean compile
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/classes/
|
|
||||||
expire_in: 1 hour
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre8
|
|
||||||
|
|
||||||
# ============================================
|
|
||||||
# 测试阶段 — 各 JDK 独立跑测试
|
|
||||||
# ============================================
|
|
||||||
test:java21:
|
|
||||||
stage: test
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
script:
|
|
||||||
- ./mvnw -B test
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: target/surefire-reports/*.xml
|
|
||||||
paths:
|
|
||||||
- target/surefire-reports/
|
|
||||||
- target/site/jacoco/
|
|
||||||
expire_in: 7 days
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre21
|
|
||||||
|
|
||||||
test:java17:
|
|
||||||
stage: test
|
|
||||||
image: maven:3.9-eclipse-temurin-17
|
|
||||||
script:
|
|
||||||
- ./mvnw -B test
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: target/surefire-reports/*.xml
|
|
||||||
paths:
|
|
||||||
- target/surefire-reports/
|
|
||||||
expire_in: 7 days
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre17
|
|
||||||
|
|
||||||
test:java11:
|
|
||||||
stage: test
|
|
||||||
image: maven:3.9-eclipse-temurin-11
|
|
||||||
script:
|
|
||||||
- ./mvnw -B test
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: target/surefire-reports/*.xml
|
|
||||||
paths:
|
|
||||||
- target/surefire-reports/
|
|
||||||
expire_in: 7 days
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre11
|
|
||||||
|
|
||||||
test:java8:
|
|
||||||
stage: test
|
|
||||||
image: maven:3.9-eclipse-temurin-8
|
|
||||||
script:
|
|
||||||
- ./mvnw -B test
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: target/surefire-reports/*.xml
|
|
||||||
paths:
|
|
||||||
- target/surefire-reports/
|
|
||||||
expire_in: 7 days
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre8
|
|
||||||
|
|
||||||
# ============================================
|
|
||||||
# 代码质量检查 (仅 Java 21)
|
|
||||||
# ============================================
|
|
||||||
checkstyle:
|
|
||||||
stage: quality
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
script:
|
|
||||||
- ./mvnw -B checkstyle:check
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/checkstyle-result.xml
|
|
||||||
expire_in: 7 days
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
pmd:
|
|
||||||
stage: quality
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
script:
|
|
||||||
- ./mvnw -B pmd:pmd
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/pmd-report.xml
|
|
||||||
expire_in: 7 days
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
# ============================================
|
|
||||||
# 安全扫描 (仅 master/jre21)
|
|
||||||
# ============================================
|
|
||||||
owasp-check:
|
|
||||||
stage: security
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
variables:
|
|
||||||
MAVEN_OPTS: "-Xmx2048m -Dmaven.repo.local=.m2/repository"
|
|
||||||
script:
|
|
||||||
- ./mvnw -B org.owasp:dependency-check-maven:check
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/dependency-check-report.html
|
|
||||||
expire_in: 14 days
|
|
||||||
allow_failure: true
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
- jre21
|
|
||||||
|
|
||||||
# ============================================
|
|
||||||
# 打包
|
|
||||||
# ============================================
|
|
||||||
package:
|
|
||||||
stage: package
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
script:
|
|
||||||
- ./mvnw -B package -DskipTests
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- target/*.jar
|
|
||||||
expire_in: 30 days
|
|
||||||
|
|
||||||
# ============================================
|
|
||||||
# 发布到 Maven Central (仅 tag, 手动触发)
|
|
||||||
# ============================================
|
|
||||||
release:maven-central:
|
|
||||||
stage: release
|
|
||||||
image: maven:3.9-eclipse-temurin-21
|
|
||||||
script:
|
|
||||||
- ./mvnw -B deploy -Dgpg.skip=false
|
|
||||||
only:
|
|
||||||
- tags
|
|
||||||
when: manual
|
|
||||||
# 需要在 Gitee 仓库设置中配置 CI/CD 变量:
|
|
||||||
# MAVEN_CENTRAL_USERNAME — OSSRH 用户名
|
|
||||||
# MAVEN_CENTRAL_PASSWORD — OSSRH 密码
|
|
||||||
# GPG_PRIVATE_KEY — GPG 私钥 (ASCII armored)
|
|
||||||
# GPG_PASSPHRASE — GPG 密钥密码
|
|
||||||
@@ -0,0 +1,243 @@
|
|||||||
|
# Gitee Go 流水线配置说明
|
||||||
|
|
||||||
|
## 📁 文件结构
|
||||||
|
|
||||||
|
```
|
||||||
|
.workflow/
|
||||||
|
├── MasterPipeline.yml # master 分支流水线 (JDK 21)
|
||||||
|
├── BranchPipeline.yml # 当前分支流水线模板
|
||||||
|
├── BranchPipeline-jre21.yml # jre21 分支流水线 (JDK 21) - 示例
|
||||||
|
├── BranchPipeline-jre17.yml # jre21 分支流水线 (JDK 17) - 示例
|
||||||
|
├── BranchPipeline-jre11.yml # jre21 分支流水线 (JDK 11) - 示例
|
||||||
|
├── BranchPipeline-jre8.yml # jre21 分支流水线 (JDK 8) - 示例
|
||||||
|
└── PRPipeline.yml # Pull Request 检查流水线
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎯 配置文件说明
|
||||||
|
|
||||||
|
### 1. MasterPipeline.yml
|
||||||
|
- **触发条件**: master 分支 push
|
||||||
|
- **JDK 版本**: 21
|
||||||
|
- **Maven 版本**: 3.9.11
|
||||||
|
- **包含阶段**:
|
||||||
|
- ✅ 编译构建
|
||||||
|
- ✅ 单元测试
|
||||||
|
- ✅ 代码质量检查 (Checkstyle + PMD)
|
||||||
|
- ✅ 安全扫描 (OWASP)
|
||||||
|
- ✅ 打包
|
||||||
|
|
||||||
|
### 2. BranchPipeline.yml
|
||||||
|
- **触发条件**: jre21, jre17, jre11, jre8 分支 push
|
||||||
|
- **JDK 版本**: 21
|
||||||
|
- **用途**: 当前分支构建模板
|
||||||
|
- **包含阶段**:
|
||||||
|
- ✅ 编译构建
|
||||||
|
- ✅ 单元测试
|
||||||
|
- ✅ 打包
|
||||||
|
|
||||||
|
### 3. BranchPipeline-jre21.yml
|
||||||
|
- **触发条件**: jre21 分支 push
|
||||||
|
- **JDK 版本**: 21
|
||||||
|
- **用途**: 为特定 JDK 版本分支创建的独立配置
|
||||||
|
- **说明**: 如需其他 JDK 版本,可复制此文件并修改 `jdkVersion`
|
||||||
|
|
||||||
|
### 4. PRPipeline.yml
|
||||||
|
- **触发条件**: 针对 master 的 Pull Request
|
||||||
|
- **JDK 版本**: 21
|
||||||
|
- **用途**: PR 合并前的代码质量检查
|
||||||
|
- **包含阶段**:
|
||||||
|
- ✅ 编译检查
|
||||||
|
- ✅ 单元测试
|
||||||
|
- ✅ 代码质量检查
|
||||||
|
|
||||||
|
## 🔧 多 JDK 版本支持方案
|
||||||
|
|
||||||
|
由于 Gitee Go 不支持在单个配置文件中动态切换 JDK 版本,我们采用以下方案:
|
||||||
|
|
||||||
|
### 使用独立配置文件
|
||||||
|
|
||||||
|
为每个 JDK 版本创建独立的流水线文件:
|
||||||
|
|
||||||
|
```
|
||||||
|
.workflow/
|
||||||
|
├── BranchPipeline-jre21.yml # jdkVersion: 21
|
||||||
|
├── BranchPipeline-jre17.yml # jdkVersion: 17
|
||||||
|
├── BranchPipeline-jre11.yml # jdkVersion: 11
|
||||||
|
└── BranchPipeline-jre8.yml # jdkVersion: 8
|
||||||
|
```
|
||||||
|
|
||||||
|
**创建步骤**:
|
||||||
|
1. 复制 `BranchPipeline-jre21.yml`
|
||||||
|
2. 重命名为对应版本(如 `BranchPipeline-jre17.yml`)
|
||||||
|
3. 修改以下内容:
|
||||||
|
```yaml
|
||||||
|
name: branch-pipeline-jre17 # 唯一标识
|
||||||
|
displayName: JRE17分支构建流水线(JDK 17) # 显示名称
|
||||||
|
|
||||||
|
triggers:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- matchType: PRECISE
|
||||||
|
branch: jre17 # 触发分支
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage:
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
jdkVersion: 17 # JDK 版本
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 使用方法
|
||||||
|
|
||||||
|
### 1. 启用 Gitee Go
|
||||||
|
|
||||||
|
1. 进入 Gitee 项目页面
|
||||||
|
2. 点击左侧菜单「DevOps」→「Gitee Go」
|
||||||
|
3. 首次使用需要开通服务
|
||||||
|
4. 系统会自动检测 `.workflow/` 目录下的配置文件
|
||||||
|
|
||||||
|
### 2. 推送代码触发构建
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 推送到 master 分支 (触发 MasterPipeline.yml)
|
||||||
|
git push origin master
|
||||||
|
|
||||||
|
# 推送到 jre21 分支 (触发 BranchPipeline-jre21.yml)
|
||||||
|
git push origin jre21
|
||||||
|
|
||||||
|
# 创建 PR (触发 PRPipeline.yml)
|
||||||
|
git checkout -b feature/new-feature
|
||||||
|
git push origin feature/new-feature
|
||||||
|
# 然后在 Gitee 上创建 Pull Request
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 查看构建结果
|
||||||
|
|
||||||
|
- 进入「DevOps」→「Gitee Go」→「流水线」
|
||||||
|
- 点击具体流水线查看构建历史
|
||||||
|
- 查看构建日志和产物
|
||||||
|
|
||||||
|
## ⚙️ 配置详解
|
||||||
|
|
||||||
|
### 基本结构
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
version: '1.0' # 配置文件版本
|
||||||
|
name: pipeline-name # 流水线唯一标识
|
||||||
|
displayName: 显示名称 # 流水线显示名称
|
||||||
|
|
||||||
|
triggers: # 触发器配置
|
||||||
|
push: # push 事件触发
|
||||||
|
branches:
|
||||||
|
- matchType: PRECISE # 精确匹配
|
||||||
|
branch: master # 分支名
|
||||||
|
|
||||||
|
stages: # 阶段定义
|
||||||
|
- stage:
|
||||||
|
name: stage-name # 阶段唯一标识
|
||||||
|
displayName: 阶段名称 # 阶段显示名称
|
||||||
|
strategy: naturally # 执行策略
|
||||||
|
trigger: auto # 触发方式 (auto/manual)
|
||||||
|
dependsOn: previous-stage # 依赖的阶段 (可选)
|
||||||
|
|
||||||
|
steps: # 步骤定义
|
||||||
|
- step: build@maven # 使用 Maven 构建插件
|
||||||
|
name: step-name # 步骤唯一标识
|
||||||
|
displayName: 步骤名称 # 步骤显示名称
|
||||||
|
jdkVersion: 21 # JDK 版本
|
||||||
|
mavenVersion: 3.9.11 # Maven 版本
|
||||||
|
commands: # 执行的命令
|
||||||
|
- 'mvn -B clean package'
|
||||||
|
|
||||||
|
artifacts: # 构建产物 (可选)
|
||||||
|
- name: ARTIFACT_NAME
|
||||||
|
path:
|
||||||
|
- './target/*.jar'
|
||||||
|
|
||||||
|
report: # 测试报告 (可选)
|
||||||
|
path:
|
||||||
|
- './target/surefire-reports/'
|
||||||
|
```
|
||||||
|
|
||||||
|
### 常用 Maven 命令
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# 编译
|
||||||
|
commands:
|
||||||
|
- 'mvn -B clean compile'
|
||||||
|
|
||||||
|
# 测试
|
||||||
|
commands:
|
||||||
|
- 'mvn -B test'
|
||||||
|
|
||||||
|
# 打包 (跳过测试)
|
||||||
|
commands:
|
||||||
|
- 'mvn -B package -DskipTests'
|
||||||
|
|
||||||
|
# Checkstyle 检查
|
||||||
|
commands:
|
||||||
|
- 'mvn -B checkstyle:check || true'
|
||||||
|
|
||||||
|
# PMD 分析
|
||||||
|
commands:
|
||||||
|
- 'mvn -B pmd:pmd || true'
|
||||||
|
|
||||||
|
# OWASP 安全扫描
|
||||||
|
commands:
|
||||||
|
- 'mvn -B org.owasp:dependency-check-maven:check || true'
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔍 常见问题
|
||||||
|
|
||||||
|
### Q1: 如何为不同分支使用不同 JDK 版本?
|
||||||
|
|
||||||
|
**答**: 为每个 JDK 版本创建独立的配置文件,见上文「方案一」。
|
||||||
|
|
||||||
|
### Q2: 流水线未触发怎么办?
|
||||||
|
|
||||||
|
**答**:
|
||||||
|
1. 确认 `.workflow/` 目录存在且包含正确的 YAML 文件
|
||||||
|
2. 检查分支名是否与 `triggers` 中配置的一致
|
||||||
|
3. 确认 Gitee Go 服务已启用
|
||||||
|
4. 查看 Gitee Go 日志排查错误
|
||||||
|
|
||||||
|
### Q3: 如何自定义 Maven 命令?
|
||||||
|
|
||||||
|
**答**: 修改 `commands` 字段:
|
||||||
|
```yaml
|
||||||
|
commands:
|
||||||
|
- 'mvn -B clean install -Dmaven.test.skip=true'
|
||||||
|
- 'echo "Build completed"'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q4: 如何上传构建产物?
|
||||||
|
|
||||||
|
**答**: 配置 `artifacts` 字段:
|
||||||
|
```yaml
|
||||||
|
artifacts:
|
||||||
|
- name: BUILD_OUTPUT
|
||||||
|
path:
|
||||||
|
- './target/*.jar'
|
||||||
|
- './target/classes/'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Q5: 支持哪些 Maven 版本?
|
||||||
|
|
||||||
|
**答**: 见上文「支持的 Maven 版本」章节。推荐使用 3.9.11。
|
||||||
|
|
||||||
|
## 📚 相关文档
|
||||||
|
|
||||||
|
- [Gitee Go 官方文档](https://help.gitee.com/enterprise/pipeline)
|
||||||
|
- [流水线配置格式说明](https://gitee.com/help/articles/4292)
|
||||||
|
- [Maven 使用示例](https://gitee.com/gitee-go/spring-boot-maven-deploy-case)
|
||||||
|
|
||||||
|
## 📅 更新记录
|
||||||
|
|
||||||
|
| 日期 | 版本 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| 2026-04-24 | 1.0.0 | 初始版本,支持多 JDK 分支构建 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**维护者**: yexuejc-base 团队
|
||||||
|
**最后更新**: 2026-04-24
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
version: '1.0'
|
||||||
|
name: branch-pipeline-jre11
|
||||||
|
displayName: JRE11分支构建流水线
|
||||||
|
triggers:
|
||||||
|
trigger: auto
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
precise:
|
||||||
|
- jre11
|
||||||
|
stages:
|
||||||
|
- name: stage-f2d6ad5a
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: build_maven
|
||||||
|
displayName: Maven 构建
|
||||||
|
jdkVersion: '11'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# 功能:打包'
|
||||||
|
- '# 参数说明:'
|
||||||
|
- '# -Dmaven.test.skip=true:跳过单元测试'
|
||||||
|
- '# -U:每次构建检查依赖更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能'
|
||||||
|
- '# -e -X :打印调试信息,定位疑难构建问题时建议使用此参数构建'
|
||||||
|
- '# -B:以batch模式运行,可避免日志打印时出现ArrayIndexOutOfBoundsException异常'
|
||||||
|
- '# 使用场景:打包项目且不需要执行单元测试时使用'
|
||||||
|
- mvn clean package -Dmaven.test.skip=true -U -e -X -B
|
||||||
|
- ''
|
||||||
|
- '# 功能:自定义settings配置'
|
||||||
|
- '# 使用场景:如需手工指定settings.xml,可使用如下方式'
|
||||||
|
- '# 注意事项:如无需自定义settings配置且需要私有依赖仓库,可在该任务配置《私有仓库》处添加私有依赖'
|
||||||
|
- '# mvn -U clean package -s ./settings.xml'
|
||||||
|
- ''
|
||||||
|
artifacts:
|
||||||
|
- name: BUILD_ARTIFACT
|
||||||
|
path:
|
||||||
|
- ./target
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-82a978a0
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: ut@maven
|
||||||
|
name: unit_test_maven
|
||||||
|
displayName: Maven 单元测试
|
||||||
|
jdkVersion: '11'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# Maven单元测试默认命令'
|
||||||
|
- mvn -B test -Dmaven.test.failure.ignore=true
|
||||||
|
- mvn surefire-report:report-only
|
||||||
|
- mvn site -DgenerateReports=false
|
||||||
|
report:
|
||||||
|
path: ./target/site
|
||||||
|
index: surefire-report.html
|
||||||
|
checkpoints: []
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-1ae35ada
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: sc@opensca
|
||||||
|
name: open_sca
|
||||||
|
displayName: OpenSCA 开源组件检测
|
||||||
|
detectPath: ./
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-b4da606f
|
||||||
|
displayName: 未命名
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: publish@general_artifacts
|
||||||
|
name: publish_general_artifacts
|
||||||
|
displayName: 上传制品
|
||||||
|
dependArtifact: BUILD_ARTIFACT
|
||||||
|
artifactName: output
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
version: '1.0'
|
||||||
|
name: branch-pipeline-jre17
|
||||||
|
displayName: JRE17分支构建流水线
|
||||||
|
triggers:
|
||||||
|
trigger: auto
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
precise:
|
||||||
|
- jre17
|
||||||
|
stages:
|
||||||
|
- name: stage-f2d6ad5a
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: build_maven
|
||||||
|
displayName: Maven 构建
|
||||||
|
jdkVersion: '17'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# 功能:打包'
|
||||||
|
- '# 参数说明:'
|
||||||
|
- '# -Dmaven.test.skip=true:跳过单元测试'
|
||||||
|
- '# -U:每次构建检查依赖更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能'
|
||||||
|
- '# -e -X :打印调试信息,定位疑难构建问题时建议使用此参数构建'
|
||||||
|
- '# -B:以batch模式运行,可避免日志打印时出现ArrayIndexOutOfBoundsException异常'
|
||||||
|
- '# 使用场景:打包项目且不需要执行单元测试时使用'
|
||||||
|
- mvn clean package -Dmaven.test.skip=true -U -e -X -B
|
||||||
|
- ''
|
||||||
|
- '# 功能:自定义settings配置'
|
||||||
|
- '# 使用场景:如需手工指定settings.xml,可使用如下方式'
|
||||||
|
- '# 注意事项:如无需自定义settings配置且需要私有依赖仓库,可在该任务配置《私有仓库》处添加私有依赖'
|
||||||
|
- '# mvn -U clean package -s ./settings.xml'
|
||||||
|
- ''
|
||||||
|
artifacts:
|
||||||
|
- name: BUILD_ARTIFACT
|
||||||
|
path:
|
||||||
|
- ./target
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-82a978a0
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: ut@maven
|
||||||
|
name: unit_test_maven
|
||||||
|
displayName: Maven 单元测试
|
||||||
|
jdkVersion: '17'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# Maven单元测试默认命令'
|
||||||
|
- mvn -B test -Dmaven.test.failure.ignore=true
|
||||||
|
- mvn surefire-report:report-only
|
||||||
|
- mvn site -DgenerateReports=false
|
||||||
|
report:
|
||||||
|
path: ./target/site
|
||||||
|
index: surefire-report.html
|
||||||
|
checkpoints: []
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-1ae35ada
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: sc@opensca
|
||||||
|
name: open_sca
|
||||||
|
displayName: OpenSCA 开源组件检测
|
||||||
|
detectPath: ./
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-b4da606f
|
||||||
|
displayName: 未命名
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: publish@general_artifacts
|
||||||
|
name: publish_general_artifacts
|
||||||
|
displayName: 上传制品
|
||||||
|
dependArtifact: BUILD_ARTIFACT
|
||||||
|
artifactName: output
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
version: '1.0'
|
||||||
|
name: branch-pipeline-jre21
|
||||||
|
displayName: JRE21分支构建流水线
|
||||||
|
triggers:
|
||||||
|
trigger: auto
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
precise:
|
||||||
|
- jre21
|
||||||
|
stages:
|
||||||
|
- name: stage-f2d6ad5a
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: build_maven
|
||||||
|
displayName: Maven 构建
|
||||||
|
jdkVersion: '21'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# 功能:打包'
|
||||||
|
- '# 参数说明:'
|
||||||
|
- '# -Dmaven.test.skip=true:跳过单元测试'
|
||||||
|
- '# -U:每次构建检查依赖更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能'
|
||||||
|
- '# -e -X :打印调试信息,定位疑难构建问题时建议使用此参数构建'
|
||||||
|
- '# -B:以batch模式运行,可避免日志打印时出现ArrayIndexOutOfBoundsException异常'
|
||||||
|
- '# 使用场景:打包项目且不需要执行单元测试时使用'
|
||||||
|
- mvn clean package -Dmaven.test.skip=true -U -e -X -B
|
||||||
|
- ''
|
||||||
|
- '# 功能:自定义settings配置'
|
||||||
|
- '# 使用场景:如需手工指定settings.xml,可使用如下方式'
|
||||||
|
- '# 注意事项:如无需自定义settings配置且需要私有依赖仓库,可在该任务配置《私有仓库》处添加私有依赖'
|
||||||
|
- '# mvn -U clean package -s ./settings.xml'
|
||||||
|
- ''
|
||||||
|
artifacts:
|
||||||
|
- name: BUILD_ARTIFACT
|
||||||
|
path:
|
||||||
|
- ./target
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-82a978a0
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: ut@maven
|
||||||
|
name: unit_test_maven
|
||||||
|
displayName: Maven 单元测试
|
||||||
|
jdkVersion: '21'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# Maven单元测试默认命令'
|
||||||
|
- mvn -B test -Dmaven.test.failure.ignore=true
|
||||||
|
- mvn surefire-report:report-only
|
||||||
|
- mvn site -DgenerateReports=false
|
||||||
|
report:
|
||||||
|
path: ./target/site
|
||||||
|
index: surefire-report.html
|
||||||
|
checkpoints: []
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-1ae35ada
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: sc@opensca
|
||||||
|
name: open_sca
|
||||||
|
displayName: OpenSCA 开源组件检测
|
||||||
|
detectPath: ./
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-b4da606f
|
||||||
|
displayName: 未命名
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: publish@general_artifacts
|
||||||
|
name: publish_general_artifacts
|
||||||
|
displayName: 上传制品
|
||||||
|
dependArtifact: BUILD_ARTIFACT
|
||||||
|
artifactName: output
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
version: '1.0'
|
||||||
|
name: branch-pipeline-jre8
|
||||||
|
displayName: JRE8分支构建流水线
|
||||||
|
triggers:
|
||||||
|
trigger: auto
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
precise:
|
||||||
|
- jre8
|
||||||
|
stages:
|
||||||
|
- name: stage-f2d6ad5a
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: build_maven
|
||||||
|
displayName: Maven 构建
|
||||||
|
jdkVersion: '8'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# 功能:打包'
|
||||||
|
- '# 参数说明:'
|
||||||
|
- '# -Dmaven.test.skip=true:跳过单元测试'
|
||||||
|
- '# -U:每次构建检查依赖更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能'
|
||||||
|
- '# -e -X :打印调试信息,定位疑难构建问题时建议使用此参数构建'
|
||||||
|
- '# -B:以batch模式运行,可避免日志打印时出现ArrayIndexOutOfBoundsException异常'
|
||||||
|
- '# 使用场景:打包项目且不需要执行单元测试时使用'
|
||||||
|
- mvn clean package -Dmaven.test.skip=true -U -e -X -B
|
||||||
|
- ''
|
||||||
|
- '# 功能:自定义settings配置'
|
||||||
|
- '# 使用场景:如需手工指定settings.xml,可使用如下方式'
|
||||||
|
- '# 注意事项:如无需自定义settings配置且需要私有依赖仓库,可在该任务配置《私有仓库》处添加私有依赖'
|
||||||
|
- '# mvn -U clean package -s ./settings.xml'
|
||||||
|
- ''
|
||||||
|
artifacts:
|
||||||
|
- name: BUILD_ARTIFACT
|
||||||
|
path:
|
||||||
|
- ./target
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-82a978a0
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: ut@maven
|
||||||
|
name: unit_test_maven
|
||||||
|
displayName: Maven 单元测试
|
||||||
|
jdkVersion: '8'
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- '# Maven单元测试默认命令'
|
||||||
|
- mvn -B test -Dmaven.test.failure.ignore=true
|
||||||
|
- mvn surefire-report:report-only
|
||||||
|
- mvn site -DgenerateReports=false
|
||||||
|
report:
|
||||||
|
path: ./target/site
|
||||||
|
index: surefire-report.html
|
||||||
|
checkpoints: []
|
||||||
|
settings: []
|
||||||
|
caches:
|
||||||
|
- ~/.m2
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-1ae35ada
|
||||||
|
displayName: ''
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: sc@opensca
|
||||||
|
name: open_sca
|
||||||
|
displayName: OpenSCA 开源组件检测
|
||||||
|
detectPath: ./
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
|
- name: stage-b4da606f
|
||||||
|
displayName: 未命名
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
executor: []
|
||||||
|
steps:
|
||||||
|
- step: publish@general_artifacts
|
||||||
|
name: publish_general_artifacts
|
||||||
|
displayName: 上传制品
|
||||||
|
dependArtifact: BUILD_ARTIFACT
|
||||||
|
artifactName: output
|
||||||
|
notify: []
|
||||||
|
strategy:
|
||||||
|
retry: '0'
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
# ============================================================
|
||||||
|
# Gitee Go 主分支流水线配置
|
||||||
|
# 文件位置: .workflow/MasterPipeline.yml
|
||||||
|
# 触发条件: master 分支 push 事件
|
||||||
|
# JDK 版本: Java 21 (Eclipse Temurin)
|
||||||
|
# Maven 版本: 3.9.x
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
version: '1.0'
|
||||||
|
name: master-pipeline
|
||||||
|
displayName: Master分支构建流水线
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 触发器配置
|
||||||
|
# ============================================
|
||||||
|
triggers:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- matchType: PRECISE
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 流水线阶段定义
|
||||||
|
# ============================================
|
||||||
|
stages:
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段1: 编译构建
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: compile-stage
|
||||||
|
displayName: 编译构建
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: maven_compile
|
||||||
|
displayName: Maven 编译
|
||||||
|
# JDK 版本: 支持 8, 11, 17, 21
|
||||||
|
jdkVersion: 21
|
||||||
|
# Maven 版本: 支持 3.2.5, 3.3.9, 3.5.2, 3.5.3, 3.5.4, 3.6.1, 3.6.3, 3.9.x
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
# 自定义构建命令
|
||||||
|
commands:
|
||||||
|
- 'mvn -B clean compile -Dmaven.test.skip=true'
|
||||||
|
# 构建产物配置
|
||||||
|
artifacts:
|
||||||
|
- name: COMPILE_ARTIFACT
|
||||||
|
path:
|
||||||
|
- './target/classes/'
|
||||||
|
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段2: 单元测试
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: test-stage
|
||||||
|
displayName: 单元测试
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
dependsOn: compile-stage
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: maven_test
|
||||||
|
displayName: Maven 测试
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B test'
|
||||||
|
# 测试报告
|
||||||
|
report:
|
||||||
|
path:
|
||||||
|
- './target/surefire-reports/'
|
||||||
|
# 测试产物
|
||||||
|
artifacts:
|
||||||
|
- name: TEST_ARTIFACT
|
||||||
|
path:
|
||||||
|
- './target/surefire-reports/'
|
||||||
|
- './target/site/jacoco/'
|
||||||
|
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段3: 代码质量检查
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: quality-stage
|
||||||
|
displayName: 代码质量检查
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
dependsOn: test-stage
|
||||||
|
steps:
|
||||||
|
# Checkstyle 代码风格检查
|
||||||
|
- step: build@maven
|
||||||
|
name: checkstyle_check
|
||||||
|
displayName: Checkstyle 检查
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B checkstyle:check || true'
|
||||||
|
artifacts:
|
||||||
|
- name: CHECKSTYLE_ARTIFACT
|
||||||
|
path:
|
||||||
|
- './target/checkstyle-result.xml'
|
||||||
|
|
||||||
|
# PMD 代码静态分析
|
||||||
|
- step: build@maven
|
||||||
|
name: pmd_check
|
||||||
|
displayName: PMD 静态分析
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B pmd:pmd || true'
|
||||||
|
artifacts:
|
||||||
|
- name: PMD_ARTIFACT
|
||||||
|
path:
|
||||||
|
- './target/pmd-report.xml'
|
||||||
|
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段4: 安全扫描
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: security-stage
|
||||||
|
displayName: 安全漏洞扫描
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
dependsOn: quality-stage
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: owasp_scan
|
||||||
|
displayName: OWASP 依赖检查
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B org.owasp:dependency-check-maven:check -DmaxMemory=2048 || true'
|
||||||
|
artifacts:
|
||||||
|
- name: SECURITY_ARTIFACT
|
||||||
|
path:
|
||||||
|
- './target/dependency-check-report.html'
|
||||||
|
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段5: 打包
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: package-stage
|
||||||
|
displayName: 打包构建
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
dependsOn: security-stage
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: maven_package
|
||||||
|
displayName: Maven 打包
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B package -DskipTests'
|
||||||
|
artifacts:
|
||||||
|
- name: PACKAGE_ARTIFACT
|
||||||
|
path:
|
||||||
|
- './target/*.jar'
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
# ============================================================
|
||||||
|
# Gitee Go PR 流水线配置
|
||||||
|
# 文件位置: .workflow/PRPipeline.yml
|
||||||
|
# 触发条件: Pull Request 事件
|
||||||
|
# 功能: PR 合并前的代码检查和测试
|
||||||
|
# JDK 版本: Java 21
|
||||||
|
# ============================================================
|
||||||
|
|
||||||
|
version: '1.0'
|
||||||
|
name: pr-pipeline
|
||||||
|
displayName: PR检查流水线
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 触发器配置 - PR 事件
|
||||||
|
# ============================================
|
||||||
|
triggers:
|
||||||
|
pr:
|
||||||
|
branches:
|
||||||
|
- matchType: PRECISE
|
||||||
|
branch: master
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 流水线阶段定义
|
||||||
|
# ============================================
|
||||||
|
stages:
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段1: 编译检查
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: compile-stage
|
||||||
|
displayName: 编译检查
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: maven_compile
|
||||||
|
displayName: Maven 编译
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B clean compile -Dmaven.test.skip=true'
|
||||||
|
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段2: 单元测试
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: test-stage
|
||||||
|
displayName: 单元测试
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
dependsOn: compile-stage
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: maven_test
|
||||||
|
displayName: Maven 测试
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B test'
|
||||||
|
report:
|
||||||
|
path:
|
||||||
|
- './target/surefire-reports/'
|
||||||
|
|
||||||
|
# ------------------------------------------
|
||||||
|
# 阶段3: 代码质量检查
|
||||||
|
# ------------------------------------------
|
||||||
|
- stage:
|
||||||
|
name: quality-stage
|
||||||
|
displayName: 代码质量检查
|
||||||
|
strategy: naturally
|
||||||
|
trigger: auto
|
||||||
|
dependsOn: test-stage
|
||||||
|
steps:
|
||||||
|
- step: build@maven
|
||||||
|
name: checkstyle_check
|
||||||
|
displayName: Checkstyle 检查
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B checkstyle:check || true'
|
||||||
|
|
||||||
|
- step: build@maven
|
||||||
|
name: pmd_check
|
||||||
|
displayName: PMD 静态分析
|
||||||
|
jdkVersion: 21
|
||||||
|
mavenVersion: 3.9.11
|
||||||
|
commands:
|
||||||
|
- 'mvn -B pmd:pmd || true'
|
||||||
Reference in new issue
Block a user