当有多个Jenkins job时,job的执行需要按照先后顺序去执行,这个过程就是Jenkins的多任务关联。通常用于项目的编译、打包、冒烟测试,执行测试脚本也需要多任务协助的场景。
1.触发条件
当多个任务有关联关系,并且需要指定先后顺序时,这时的场景就需要配置“触发条件”来构建,如部署环境任务与验收测试任务时,可能有下面3种场景:
(1)前驱job成功的条件下触发下一个job;
(2)前驱job失败的条件下触发下一个job;
(3)前驱job不稳定的条件下触发下一个job。
2.案例
(1)A job成功构建后,触发B job进行构建。
1)前提条件:jenkins_job_compile( A job),当它构建稳定的情况下,触发构建jenkins_job_test( B job)。
2)退出状态值为0,表示job的执行结果是成功。因此,在jenkins_job_compile job的构建中输入命令exit 0(见图8-18)。
3)在jenkins_job_test( B job)构建触发器中勾选“其他工程构建后触发”项,并选择“只有构建稳定时触发”项(见图8-19)。
4)执行job的构建结果为:Ttiggering a new build of jenkins_job_test。
(2)失败构建
1)前提条件:jenkins_job_compile( A job ) 构建即使失败也会触发jenkins_job_test( B job )。
2)退出状态值为非0,表示job的执行结果是失败。因此,在jenkins_job_compile job的构建中输入exit -1。
3)在jenkins_job_test(B job) 构建触发器中勾选“其他工程构建后触发”项,并选择“即使构建失败时也会触发”单选项。
4)执行job的构建结果为:failure Triggering a new build of jenkins_job_test。
(3)不稳定构建
1)前提条件:jenkins_job_compile( A job)即使构建不稳定也会触发jenkins_job_test( B job)。
2)退出状态值为unstable,表示job的执行结果是不稳定。在jenkins_job_compile( A job )配置页面的构建步骤中输入如下:
echo "unstable"
exit 0
安装Text Finder插件,在job中找到构建后,选择“Text Finder”项,设置规则:如果在console中检测到unstable,则标记任务状态为unstable。任务最终结果为成功,输出字样中含unstable。
3)在jenkins_job_test( B job ) 构建触发器中勾选“其他工程构建后触发”项,并选择“即使构建不稳定时也会触发”单选项。
4)执行job的构建结果如下:
Finished looking for pattern 'unstable' in the console output
Triggering a new build of jenkins_job_test