如何通过不同 hudson 中的另一项工作触发 hudson 工作
我在 Hudson A 中有工作 A,在 Hudson B 中有工作 B。我想通过工作 B 触发工作 A。
I have job A in Hudson A and Job B in Hudson B. I want to trigger job A by Job B.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
在作业 B 配置中,选中触发器远程构建(例如,从脚本)复选框并提供令牌。
那里的帮助文本显示了可以调用的 URL,以从远程脚本(例如,从 Hudson 作业 A 中的 shell 脚本)触发构建。
然而,无论作业 A 的结果是什么,这都会触发作业 B。
Morechilli 的答案可能是最好的解决方案。
In your job B configuration, check the Trigger builds remotely (e.g., from scripts) checkbox and provide a token.
The help text there shows you the URL you can call to trigger a build from remote scripts (e.g. from a shell script in Hudson job A).
However, that would trigger job B no matter what the result of job A is.
Morechilli's answer is probably the best solution.
我没有使用过 Hudson,但我猜你最简单的方法是使用 URL 触发器:
http://wiki.hudson-ci.org/display/HUDSON/URL+Change+Trigger
我认为有一个最新的构建 URL 可以用于此目的。
I haven't used Hudson but I would guess your simplest approach would be to use the URL trigger:
http://wiki.hudson-ci.org/display/HUDSON/URL+Change+Trigger
I think there is a latest build url that could be used for this.
在最新版本的 Hudson 中,lastSuccessfultBuild/ HTML 页面将包含自构建以来经过的时间,每次调用的时间都不同。这会导致 URL 更改触发器旋转。
一种修复方法是使用 xml、json 或 python API 仅请求信息的子集。使用“tree”请求参数,以下 URL 将返回一个仅包含上次成功构建的构建号的 XML 文档。
http://SERVER:PORT/job/JOBNAME/lastSuccessfulBuild/api/xml ?tree=number
使用此 URL 恢复了我期望的 URL 更改触发器的行为。
In the latest versions of Hudson, the lastSuccessfultBuild/ HTML page will contain the elapased time since it was built, which will be different for each call. This causes the URL Change Trigger to spin.
One fix is to use the xml, json, or python APIs to request only a subset of the information. Using the 'tree' request parameter, the following URL will return an XML document containing only the build number of the last successful build.
http://SERVER:PORT/job/JOBNAME/lastSuccessfulBuild/api/xml?tree=number
Using this URL restored the behavior I expected from the URL Change Trigger.
就我个人而言,我发现最简单的方法是查看构建时间戳:
PROJECT_NAME/lastSuccessfulBuild/buildTimestamp
Personally, I find the easiest way to do this is to watch the build timestamp:
PROJECT_NAME/lastSuccessfulBuild/buildTimestamp
我使用 wget 来触发构建:
还有其他方法可以触发构建,请参阅 jenkins 的 REST 和其他 API。
但这在 UNIX 上效果很好。
I'm using wget to trigger the build:
There's other ways how you can trigger a build, see the REST and other APIs of jenkins.
But this works great on unix.