【问题标题】:Trigger Jenkins Job after Artifactory UploadArtifactory Upload 后触发 Jenkins Job
【发布时间】:2015-07-09 01:48:11
【问题描述】:

我有两个 Jenkins 工作。

工作 1:将构建上传到工件

工作 2:从 artifactory 下载构建并用它做一些事情

现在,Job 1 使用 Parameterized Build Plugin 触发 Job 2(Job 2 在我公司的许多团队之间共享,所以我不想更改太多 - 这是一个需要人工 URL 的参数化作业)

问题是,在 Job 2 被触发之前,工件似乎并不总是完成上传到工件。有时,Job 2 在尝试下载工件时会收到 404。有什么方法可以 1) 在工件上传之前防止触发 Job 2?或 2) 将工件直接从作业 1 传递到作业 2,而无需进行上传和下载? (前者更可取,因为选项 2 需要更改工作 2)

【问题讨论】:

    标签: jenkins artifactory


    【解决方案1】:

    关于您的选项 1,如果作业 2 失败,您可以使用 Naginator 插件重新安排作业 2。

    关于选项 2,您可以使用 Copy Artifact 插件。它将允许作业 2 从作业 1 复制工件。

    就个人而言,我更喜欢选项 1。Artifactory 是存储二进制文件的正确位置 :)

    第三种解决方案是使用作业 2 上的静默期设置来延迟启动 (Jenkins: build one job after another with some delay)。

    【讨论】:

    • 谢谢 - 有什么办法可以延迟作业 2 的开始运行吗?知道它会失败就开始它似乎很愚蠢。
    • 是的,您可以在工作 2 中使用静默期设置,请看这里:stackoverflow.com/questions/17748993/…。我已经在我的答案中添加了这个解决方案。如果它解决了您的问题,请投票:)
    • 谢谢 - 不幸的是,这并不能解决我的问题,因为很多人都在使用工作 2 - 我不希望他们都有延迟 - 我只想要工作时的延迟2 是由作业 1 触发的。有没有办法给触发器添加延迟?
    • 一个肮脏的解决方案是在作业 1 上添加一个 shell/batch 构建后步骤,并添加一种等待(例如睡眠 N 秒)。
    猜你喜欢
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多