我有两份工作:
我想让 Launch-instance 依赖于另一个,因此触发 Launch-instance 会自动导致 Upload 首先运行。
我可以使用内置的Jenkins功能或插件来实现这一目标吗?
请注意,我不希望上传始终触发 Launch-instance ,这就是“构建其他项目后构建”的内容 Launch-instance 上的选项可以。我想要的更多类似于Ant 中depends
属性的工作方式。
答案 0 :(得分:25)
您是否尝试过Parametrized Trigger Plugin?
您可以将其用作构建步骤,并选中“阻止直到触发的项目完成构建”的复选框。这应该是你正在寻找的。 p>
答案 1 :(得分:5)
正如在 Spanish-language article about launching Hudson builds 中所说的那样,该链接来自于miki链接到的Hudson Remote access API page的评论:
Enlasección“构建触发器”[...] marcamos la opción“触发器远程构建(例如, 来自剧本)“。Al marcarestaopcióvemoscomo aparece el cuadro de texto”Authentication Token“.Aquístaterremosel nombre del tokendelutenticación。
alt text http://www.adictosaltrabajo.com/tutoriales/hudsonSubversionPush/hudsonSubversionPush-01.png
(了解西班牙语的好处似乎开始实现......: - )
因此,事实证明,Hudson提供了一个方便的内置选项,用于远程触发构建。在构建触发器部分(在我的案例中为上传作业)中,您可以启用远程构建并设置身份验证令牌(请参见上面的屏幕截图)。然后,您可以通过访问包含该令牌的特定URL来启动构建。在我的例子中, Launch-instance 的第一个构建步骤如下所示:
wget http://[hudson-url]/job/Upload/build?token=TEST
sleep 10
即使禁用匿名构建并且只是尝试访问构建URL,也会产生“403 Forbidden”。
答案 2 :(得分:2)
通过wget运行相关作业不是一般解决方案。由于作业异步运行,因此启动作业不会挂起并等待上载作业完成。使用睡眠只是一个肮脏的黑客,并不是大多数情况下的选择... 恕我直言最好的解决方案是使用:http://wiki.jenkins-ci.org/display/JENKINS/Join+Plugin
答案 3 :(得分:1)
通过使用wget作为第一个构建步骤调用其build URL来构建上传怎么样?然后添加 Launch-instance 的牛肉构建步骤。
或者对于更高级的方法,也许使用Remote access API。
答案 4 :(得分:0)
您可以使用下游或上游依赖项。你应该使用“构建触发器” - > 在项目的配置部分中构建和/或构建后操作之后构建。