【问题标题】:How to Trigger Jobs in Jenkins during runtime?如何在运行时触发 Jenkins 中的作业?
【发布时间】:2017-10-19 09:40:25
【问题描述】:
我有一个每晚都会运行的上游作业,应该对下游作业运行一些测试,而我必须在运行时进行。
例子:
- job1 将开始运行回归前测试。
- job1 将通过测试命令触发 Job2 和 Job3。
- job1 将等待 Job2 和 Job3 完成测试命令。
- job2 和 job3 应该在完成后返回测试状态。
- job1 将继续测试。
注意:步骤 2-4 必须循环运行,每次 job1 都会将不同的测试命令传递给 job2 和 job3 。
Jenkins 是否有支持该功能的插件?
谢谢。
【问题讨论】:
标签:
jenkins
jenkins-plugins
【解决方案1】:
1) job1 将开始运行预回归测试。 2) job1 将通过测试命令触发 Job2 和 Job3。 3) job1 将等待 Job2 和 Job3 完成测试命令。 4) job2 和 job3 应该在完成后返回测试状态。 5) job1 将继续测试。
您可以使用条件构建步骤插件。
https://wiki.jenkins.io/display/JENKINS/Conditional+BuildStep+Plugin
这样在某些评估中,job2和job3会在job1内触发,一旦两者都完成,job1会继续执行剩下的部分。
注意:步骤 2-4 必须循环运行,每次 job1 都会将不同的测试命令传递给 job2 和 job3。
- 如果您在执行之前已经全部/完成了一组测试/命令
job2 和 job3,将其存储在文件中并在下游读取相同
循环遍历它的工作。
- 如果你没有相同的,这意味着基本上每次运行,
job1 正在产生不同的输出。如果是这样,请使用 cron
有争议地执行该作业。
如果情况 2,我会建议检查 pipeline-as-a-code/groovy 脚本来处理循环部分。