我有 2 台 Jenkins 主机,并希望 First Jenkins 根据第一个主机上的“SUCCESS”结果触发远程 Jenkins 上的工作。我查看了各种插件,但它们似乎都表示一个 Jenkins 主机,可以以这种方式链接多个作业。
5 回答
同时,一个 jenkins 插件变得可用,这使它变得更容易:
https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Remote+Trigger+Plugin
It's very easy to do using cURL requests, no need for plugins or master>slave relations. It took me 5 minutes from beginning to start. Use the following manual:
https://www.nczonline.net/blog/2015/10/triggering-jenkins-builds-by-url/
您可以在 host1 上设置一个下游作业,该作业仅在 host1 上的第一个作业成功时才构建。在这项工作中,您将触发远程构建,就像我在此答案中描述的那样
第 1 步:在两个 Jenkins 中安装以下插件。
- 通用 Webhook 触发器:可以从 http 请求触发作业。
- HTTP 请求插件:发送 http 请求作为构建步骤
- 任何构建步骤插件:在构建后操作中使用任何构建步骤。
第 2 步:配置要触发的作业(Jenkins B)。
在构建触发器中选择通用 webhook 触发器并生成令牌并粘贴。
保存此作业后,可以通过向http://JENKINS_B_URL/generic-webhook-trigger/invoke?token=TOKEN_VALUE发送 http 请求来 触发
第 3 步:在主 Jenkins(Jenkins A) 中,在配置系统中配置灵活的发布设置,以允许将所有构建步骤用作构建后操作。
第 4 步:在后期构建操作中添加另一个步骤“灵活发布”。 使用此任何构建操作都可以用作构建后操作。添加 HTTP 请求操作。在 url 字段中提供 Jenkins B webhook url 并保存。
是的。配置您的 Jenkins 节点并标记它们,比如master
和slave
(管理 Jenkins -> 管理节点)。
1)配置Job A
并指定它只能运行在master
(“限制这个项目可以运行的地方”和标签字段中master
)。
2)配置Job B
成只有Job A
成功才会触发:
“构建后操作”->“仅在构建成功时触发”
3)与步骤 1 类似Job B
。slave