作为预构建步骤,我如何触发 hudson 的另一项工作?
Posted
技术标签:
【中文标题】作为预构建步骤,我如何触发 hudson 的另一项工作?【英文标题】:How do I trigger another job from hudson as a pre-build step? 【发布时间】:2011-07-26 02:50:38 【问题描述】:如何从 hudson 触发另一个作业作为预构建步骤?
【问题讨论】:
【参考方案1】:您可以在http://wiki.jenkins-ci.org/display/JENKINS/Join+Plugin使用插件
基本上你创造了 3 个工作:
A = 您的预构建步骤
B = 你的主要工作
C = 你的触发器。
您“构建” C。它调用 A,一旦 A 成功,它就会调用 B。插件页面为您提供更多信息。这个插件的好处是您可以拥有任意数量的预构建作业。
在我们的 main 运行之前,我们实际上有一组 5 个预构建作业。
================================================ =
如果你不想尝试:
如果您使用的是 Linux,您可以在“shell”脚本中执行以下操作:
wget http://yourserver/hudson/job/MyJob/build?delay=0sec
这将触发作业。这样做的坏处是它不会等待工作完成。
【讨论】:
谢谢萨加尔!!这个“坏部分”正是我想要的。但是这个 Rest API 是如何处理身份验证的呢?因为我的 Jenkins 被配置为在任何操作之前请求登录。 @NaderA.Jabbar Jenkins ReST API 实际上支持使用身份验证令牌进行身份验证。您可以使用脚本中的每个作业令牌或您自己的身份验证 API 令牌。查看 URLhttp://yourserver/hudson/job/MyJob/api
以获取有关使用 API 调用构建的更多信息。此外,在“执行构建”下,有两个链接。检查用于调用带有参数的构建的那个。【参考方案2】:
有一个Parameterized Trigger Plugin,可以在“添加构建步骤”菜单中启用“在其他项目上触发/调用构建”。
【讨论】:
谢谢!这是我一直在寻找的选项,但插件页面上没有明确提及。 文档确实提到了“使用作为构建步骤”,尽管您需要意识到这是您所需要的,这不是很明显,当然不是插件名称。 只是添加了“在其他项目上触发/调用构建”部分应该首先使用其他容器,例如“执行 windows 批处理命令”【参考方案3】:其实我知道怎么回答你的问题: 这是您需要的插件:
PreBuild
它并不广为人知,但它可以满足您的需求。
它基本上在您选择的构建之前运行一个构建。例如:您希望 A 在 B 之前运行。 你点击“运行B”它会在运行B之前执行A。
专业版: -> 用途广泛 -> 易于使用
缺点: -> 如果预构建失败,则不支持/选项(例如,如果预构建失败,则不构建) -> 开发似乎一点也不活跃。
在这里你可以看到它的样子
编辑
这个答案是从 12 年回来的,我知道你对它投了反对票,但当时这是一个可靠的解决方案,现在我确信还有其他插件可以完成这项工作。
【讨论】:
你可以使用支持该功能的旧版本 Jenkins 这是一年前写的,当然不是一个生动的建议,而是一个解决方案。【参考方案4】:我有同样的问题,我找到了解决办法:
我使用的是詹金斯版本 jenkins-1.452-1.1。
假设我有工作 A 和 B,而工作 A 依赖于工作 B。在构建工作 B 时,我希望 A 自动触发,并且 B 被阻塞,直到 A 构建成功。
在构建部分定义构建配置时,我添加了“在其他项目上触发构建”。然后填写表格。
【讨论】:
我在我的项目中有同样的事情要做,我正在使用 Jenkins 版本。 1.479,我在作业配置“构建触发器->构建其他项目后构建”中启用了以下功能,但这对我不起作用(不执行依赖项目,我也想知道如何将参数传递给依赖项目)跨度>以上是关于作为预构建步骤,我如何触发 hudson 的另一项工作?的主要内容,如果未能解决你的问题,请参考以下文章