让詹金斯(哈德森)的工作取决于另一份工作

hudson build-automation jenkins

35714 观看

5回复

54012 作者的声誉

我有两份工作:

  1. 上传
  2. 启动实例

我想让Launch-instance依赖于另一个,因此触发Launch-instance会自动导致首先运行Upload

我可以使用内置的Jenkins功能或插件来实现这一目标吗?

请注意,我希望上传总是触发启动实例,这是“建立后,其他项目都建成了”上选项启动实例会做。我想要的更像depends属性如何在Ant中运行

作者: Jonik 的来源 发布者: 2010 年 4 月 20 日

回应 (5)


0

67989 作者的声誉

您可以使用下游或上游依赖项。在项目的配置部分中构建其他项目和/或构建后操作后,您应该使用“构建触发器” - >构建。

作者: khmarbaise 发布者: 20.04.2010 11:34

1

99 作者的声誉

如何通过使用wget作为第一个构建步骤调用其构建URL来构建Upload?然后添加Launch-instance的牛肉构建步骤。

或者对于更高级的方法,也许使用远程访问API

作者: miki 发布者: 20.04.2010 12:21

5

54012 作者的声誉

啊啊,找到了!在这里,我建立在miki的答案上,它显示了方式,但并没有完全解决这个问题。

正如它在关于启动Hudson构建西班牙语文章中所述,该文章与Hudson的远程访问API页面的注释相关联,该页面与miki链接:

Enlasección“ Build Triggers ”[...] marcamoslaopción“ 触发器远程构建(例如,从脚本) ”。Al marcarestaopcióvemoscomo aparece el cuadro de texto“Authentication Token”。Aquísempremosel nombre del tokendeututenticación。

替代文字
(来源:adictosaltrabajo.com

(看来,了解西班牙语的好处正在开始实现...... :-)

因此,Hudson提供了一个方便的内置选项,可以远程触发构建。在Build Triggers部分(在我的案例中为Upload job)中,您可以启用远程构建并设置auth令牌(参见上面的屏幕截图)。然后,您可以通过访问包含该令牌的特定URL来启动构建。在我的例子中,Launch-instance的第一个构建步骤如下:

wget http://[hudson-url]/job/Upload/build?token=TEST
sleep 10

即使禁用匿名构建并且只是尝试访问构建URL也会产生“403 Forbidden”,这也可以工作。

作者: Jonik 发布者: 20.04.2010 12:47

25

8414 作者的声誉

决定

你试过参数化的触发插件吗?

您可以将其用作构建步骤,并选中“阻止直到触发的项目完成构建”的复选框。这应该是你正在寻找的。

作者: pushy 发布者: 21.09.2011 08:44

2

489 作者的声誉

通过wget运行相关作业不是一般解决方案。由于作业异步运行,因此启动作业不会挂起并等待上载作业完成。使用睡眠只是一个肮脏的黑客,并不是大多数情况下的选项...恕我直言最好的解决方案是使用:http//wiki.jenkins-ci.org/display/JENKINS/Join+Plugin

作者: user62058 发布者: 19.11.2011 07:45
32x32