mirror of
https://gitee.com/jzsw-it/yexuejc-base.git
synced 2026-10-26 01:24:49 +08:00
158 lines
4.5 KiB
YAML
158 lines
4.5 KiB
YAML
# ============================================================
|
|
# 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'
|