如何在非Pipeline的Job DSL作业中配置gatlingArchive()?
解决方案:在非Pipeline的Job DSL作业中实现Gatling报告归档
当然可以实现,你之前用的是Pipeline专属的post/stage语法,在Job DSL创建的自由风格作业里不适用。自由风格作业的构建后操作要放在publishers块里,对应Gatling的归档功能有两种配置方式:
方式一:用Job DSL内置的Gatling Publisher方法(如果插件支持)
如果你的Jenkins Gatling插件版本和Job DSL版本适配,直接在publishers里添加gatling配置即可,效果等同于Pipeline里的gatlingArchive():
job("job-my-job") { label(...) parameters {...} wrappers {...} scm {...} steps { // 这里放你的Gatling运行步骤,比如执行mvn gatling:test之类的命令 shell("mvn gatling:test") } publishers { gatling { // 指定Gatling报告的归档路径,默认是target/gatling/*-simulation-*,可按需修改 reportArchivePatterns("target/gatling/**") // 配置总是归档,对应Pipeline里的post.always alwaysArchive() } } logRotator(-1, 90) configure {...} }
方式二:用configure块直接修改Jenkins配置(万能兼容)
如果Job DSL没有内置Gatling的publisher方法,就用configure块直接写入Jenkins的底层XML配置,这适配所有版本:
job("job-my-job") { label(...) parameters {...} wrappers {...} scm {...} steps { shell("mvn gatling:test") } publishers {...} // 保留原有的publishers配置 logRotator(-1, 90) configure { project -> // 向publishers节点添加Gatling归档器配置 project / publishers << 'io.gatling.jenkins.GatlingPublisher' { reportArchivePatterns('target/gatling/**') alwaysArchive(true) } } }
关键说明
Pipeline的post块是流水线语法特有的,自由风格作业的构建后操作统一放在publishers或通过configure配置,不能直接套用Pipeline的语法结构。上面两种方式都能实现不管构建成功失败,都归档Gatling报告的效果,和你想要的post.always { gatlingArchive() }功能完全一致。
内容的提问来源于stack exchange,提问作者Yore
相关产品推荐
相关产品推荐

