我有两台远程机器:A 和 B。两者都安装了 Jenkins。
答:这将从主干构建。
B:触发自动化。
当机器 A 上的构建成功时,如何在机器 B 上配置 Jenkins 作业?
我有同样的要求,因为我使用的其中一台服务器属于另一家公司,因此,虽然有可能,但显然需要很长时间才能让我改变他们的 jenkins 设置-起来,即使我被允许访问监控它及其输出。但是,如果您没有这些限制,那么您绝对应该遵循整个主从配置来解决这个问题。也就是说,这是我想出的一个解决方案,只是要注意我已经解释了为什么这是一个真正的要求,尽管我希望尽可能自己走主从路线。
为 Jenkins 安装 ScriptTrigger 插件,然后您可以使用类似以下的脚本来监视远程 jenkins 实例:
LAST_SUCCESSFUL_UPSTREAM_BUILD=`curl http://my.remote.jenkins.instance.com:8080/job/remoteJobName/lastSuccessfulBuild/buildNumber`
LAST_KNOWN_UPSTREAM_BUILD=`cat $WORKSPACE/../lastKnownUpstreamBuild || echo 0`
echo $LAST_SUCCESSFUL_UPSTREAM_BUILD> $WORKSPACE/../lastKnownUpstreamBuild
exit $(( $LAST_SUCCESSFUL_UPSTREAM_BUILD > $LAST_KNOWN_UPSTREAM_BUILD ))
每当退出代码为“1”时,获取 ScriptTrigger 以安排构建。设置一个合适的轮询间隔,就可以了。
如果上游作业成功,这显然只会安排构建。根据您的要求,在上面的 URL 中使用“lastBuild”或“lastFailedBuild”而不是“lastSuccessfulBuild”。
注意:使用 BASH shell 实现。可以在其他 UNIX shell 中工作,在 Windows 中不起作用。