本文节选自霍格沃兹测试开发学社内部教材
当有多个 Jenkins job 时,job 的执行需要按照先后顺序去执行,这个过程就是 Jenkins 的多任务关联。通常用于项目的编译、打包、执行冒烟、执行项目 case 多任务协助的场景中。
触发条件
多任务关联的使用场景是有先后次序关系的任务,例如 部署环境任务 -> 验收测试任务。而任务启动的触发条件为其他任务的运行结果,比如
- 前驱 job 成功的条件下触发下一个 job
- 前驱 job 失败的条件下触发下一个 job
- 前驱 job 不稳定的条件下触发下一个 job
成功构建
- jenkins_job_compile 构建稳定的情况下触发 jenkins_job_test
- 退出状态值为 0,job 的执行结果是成功。因此,在 jenkins_job_compile job 的构建中输入 exit 0
在 jenkins_job_test 构建触发器中勾选其他工程后构建,选择只有稳定构建时触发
失败构建
jenkins_job_compile 构建即使失败也会触发 jenkins_job_test
退出状态值为非 0,job 的执行结果是失败。因此,在 jenkins_job_compile job 的构建中输入 exit -1
在 jenkins_job_test 构建触发器中勾选其他工程后构建,选择即使构建失败也触发
执行 job 的构建结果为:failure Triggering a new build of jenkins_job_test
不稳定构建
jenkins_job_compile 即使构建不稳定也会触发 jenkins_job_test
退出状态值为 unstable,job 的执行结果是不稳定。因此在 jenkins_job_compile 中,在构建中输入 echo “unstable” exit 0,同时安装 Text Finder 插件,任务最终结果为成功,输出字样中含 unstable,在 job 中找到构建后,选择 Text Finder,设置规则:如果在 console 中检测到 unstable,则标记任务状态为 unstable
在 jenkins_job_test 构建触发器中勾选其他工程后构建,选择即使构建不稳定时也会触发
执行 job 的构建结果为:Finished looking for pattern ‘unstable’ in the console output 。Triggering a new build of jenkins_job_test