mirror of
https://gitee.com/jzsw-it/yexuejc-base.git
synced 2026-10-25 17:20:19 +08:00
- 删除旧的 .gitee-ci.yml 配置文件 - 新增 .workflow/MasterPipeline.yml 主分支流水线配置 - 新增 .workflow/BranchPipeline-jre8.yml jre8分支流水线配置 - 新增 .workflow/BranchPipeline-jre11.yml jre11分支流水线配置 - 新增 .workflow/BranchPipeline-jre17.yml jre17分支流水线配置 - 新增 .workflow/BranchPipeline-jre21.yml jre21分支流水线配置 - 新增 .workflow/PRPipeline.yml PR检查流水线配置 - 新增 .workflow/README.md 流水线配置说明文档 - 实现多JDK版本分支独立构建流程 - 配置完整的编译、测试、质量检查、安全扫描、打包流程
6.5 KiB
6.5 KiB
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
创建步骤:
- 复制
BranchPipeline-jre21.yml - 重命名为对应版本(如
BranchPipeline-jre17.yml) - 修改以下内容:
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
- 进入 Gitee 项目页面
- 点击左侧菜单「DevOps」→「Gitee Go」
- 首次使用需要开通服务
- 系统会自动检测
.workflow/目录下的配置文件
2. 推送代码触发构建
# 推送到 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」→「流水线」
- 点击具体流水线查看构建历史
- 查看构建日志和产物
⚙️ 配置详解
基本结构
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 命令
# 编译
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: 流水线未触发怎么办?
答:
- 确认
.workflow/目录存在且包含正确的 YAML 文件 - 检查分支名是否与
triggers中配置的一致 - 确认 Gitee Go 服务已启用
- 查看 Gitee Go 日志排查错误
Q3: 如何自定义 Maven 命令?
答: 修改 commands 字段:
commands:
- 'mvn -B clean install -Dmaven.test.skip=true'
- 'echo "Build completed"'
Q4: 如何上传构建产物?
答: 配置 artifacts 字段:
artifacts:
- name: BUILD_OUTPUT
path:
- './target/*.jar'
- './target/classes/'
Q5: 支持哪些 Maven 版本?
答: 见上文「支持的 Maven 版本」章节。推荐使用 3.9.11。
📚 相关文档
📅 更新记录
| 日期 | 版本 | 说明 |
|---|---|---|
| 2026-04-24 | 1.0.0 | 初始版本,支持多 JDK 分支构建 |
维护者: yexuejc-base 团队
最后更新: 2026-04-24