Skip to content

06 案例验证

全部案例通过 JCasC 的 job-dsl 种子任务自动创建,实际执行结果如下(2026-08-14)。

6.1 toolchain-check —— 工具链验证

并行在 5 个弹性 agent 模板上执行版本检查,结果 SUCCESS

== Java 8 ==
openjdk version "1.8.0_492"          Apache Maven 3.9.16
== Java 21 ==
openjdk version "21.0.11" 2026-04-21 LTS   Apache Maven 3.9.16
== Node 21 ==
v21.7.3   npm 10.5.0   (registry: registry.npmmirror.com)
== Golang ==
go version go1.24.13 linux/amd64   (GOPROXY: goproxy.cn)
== Python ==
Python 3.12.13   pip 25.0.1   (index: mirrors.aliyun.com/pypi/simple)

每个分支由 Kubernetes 插件动态创建对应 pod 模板(maven8/maven21/node21/golang/python), 构建结束自动销毁。观察到首次运行时个别 agent 因节点镜像未缓存出现 ErrImagePull 重试, 属正常现象(镜像拉取成功后自动恢复);可通过镜像预热消除(见性能优化章节)。

6.2 java-demo —— Java 21 Maven 构建

流水线:准备代码(从 /examples ConfigMap 复制)→ mvn clean package → junit 报告 + 归档 jar。

结果 SUCCESS

  • 依赖全部经阿里云镜像下载:Downloading from aliyun-public: https://maven.aliyun.com/repository/public/...
  • 单元测试:passCount=4, failCount=0(junit 插件归档 surefire 报告)
  • 产物 target/java-demo-1.0.0.jar 已归档(Archive Artifacts + fingerprint)

示例项目源码:deploy/examples/java-demo/(App.java 提供 greet/add 方法,AppTest 4 个用例)。

6.3 sonarqube-demo —— SonarQube 代码扫描

流水线:准备代码 → withSonarQubeEnv('sonarqube') { mvn verify sonar:sonar }waitForQualityGate

结果 SUCCESS

  • Maven 日志:BUILD SUCCESSAnalysis total time: 13.356 s
  • SonarQube 服务端自动创建项目 java-demo,分析结果:
指标
ncloc49
bugs0
vulnerabilities0
code_smells1
质量门禁OK(通过)
  • 质量门禁通过 SonarQube Webhook 秒级回调 Jenkins(配置见 04 文档 4.6 节)

验证命令:

bash
curl -s -u 'admin:xxx' \
  'http://192.168.122.23:30900/api/measures/component?component=java-demo&metricKeys=bugs,vulnerabilities,code_smells,ncloc,alert_status'

6.4 手动操作入口

操作方式
触发构建UI: http://192.168.122.23:30880/job/<name>/build 或 API POST /job/<name>/build(需 crumb)
查看日志curl -u admin:xxx http://192.168.122.23:30880/job/<name>/lastBuild/consoleText
SonarQube 报告http://192.168.122.23:30900/dashboard?id=java-demo