我有一个名为“ TestPipeline”的詹金斯管道作业。我想在两个不同的从属服务器上触发构建,标记为“ tester1”和“ tester2”,并且管道脚本在这里非常简单:
node('tester1') { build 'test_job' } node('tester2') { build 'test_job' }
但是,当我运行TestPipeline作业时,“ test_job”将不会在我分配的节点上运行。但改为在随机节点上运行。
我想知道是否应该在我的“ test_job”上设置“限制可以在哪里运行该项目”。因此,我将其设置为“ tester”(“ tester”标签同时包含节点“ tester1”和“ tester2”)。但是,当我再次运行管道作业时,“ test_job”在“ tester2”上运行了两次。我应该期望该作业先在“ tester1”上运行,然后在“ tester2”上运行。这是为什么?是因为在构建步骤应该在哪个节点上构建时,“节点”步骤无关紧要?
请在这里查看错误。解决方法如下。
在管道脚本中,使用代码:
build job: ‘test_job’, parameters: [[$class: ‘LabelParameterValue’, name: ‘node’, label: ‘tester1’]] build job: ‘test_job’, parameters: [[$class: ‘LabelParameterValue’, name: ‘node’, label: ‘tester2’]]
这项工作将按我的意愿进行。
但是 ,我认为这只是一种解决方法。我仍然相信这是一个错误。因为节点步骤应该执行其工作,而不是让其他插件来完成。