2016-10-10 131 views
0

我是新来的管道插件。在我的环境中,我们建立了多个团队和多个jenkins实例。我喜欢管道工作需要成为“顶级”的事实。 但是,大多数依赖所有作业的例子都是在同一个jenkins实例上配置的。 如果我的工作在不同的机器上,该怎么办?Jenkins管道:多个jenkins实例

简单的webhook卷曲会触发外部机器上的作业,但不会返回有关状态的任何反馈?

这里是我的榜样管道配置:

echo 'start Pipeline' 

stage 'Build' 
    build job: 'build' 

stage 'Package tests' 
    build job: 'test' # <-- this is on another jenkins server 

stage 'Deploy' 
    build job: 'deploy' 

回答

0

在为“测试”,你应该能够用于通过“限制,其中这个项目可以运行”的任务设定所需的标签作业配置。然后该工作应该自动运行在具有相应匹配标签的Jenkins从站上。

如果你想手动控制哪个节点的工作应该运行,那么你将不得不使用NodeLabel Parameter Plugin。另见与此相关的answer on SO或与此相关的Jenkins issue

更新

如果你想触发远程主作业(即不是奴隶),你可以使用远程访问API或Parameterized Remote Trigger Plugin

+0

我提到的'测试'作业在不同的jenkins实例(不同的url)上是已知的。我想你在这里描述的是在不同的奴隶上运行这项工作。 afaik,我将不得不使用[远程访问](https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API):( – SirLenz0rlot

+0

好吧,我误解了用例然后我已经更新我上面的答案包括通过插件远程作业执行的一个选项 – fdd

+0

我不认为远程触发器监控它,那么我的管道怎么知道如何在远程作业之前不移动到下一个“阶段”通过呢? – SirLenz0rlot