Files

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. 修改以下内容:
    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. 推送代码触发构建

# 推送到 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: 流水线未触发怎么办?

答:

  1. 确认 .workflow/ 目录存在且包含正确的 YAML 文件
  2. 检查分支名是否与 triggers 中配置的一致
  3. 确认 Gitee Go 服务已启用
  4. 查看 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