【问题标题】:Jenkins executing one job that runs multiple jobsJenkins 执行一项运行多个作业的作业
【发布时间】:2017-03-21 19:11:10
【问题描述】:

我是 Jenkins 的新手,我需要执行一个作业来并行运行另一个多个作业,即使一个作业失败它也不应该停止。

我不知道如何实现它。谷歌搜索后,我可以通过 3 种方式实现多作业插件、管道多个 Jenkins 作业、构建其他项目、构建流程插件。

任何人都可以请提供我正确的方法。

更新:我正在尝试使用管道插件来实现这一点,任何人都可以建议我这是正确的选择吗?..请建议!..

【问题讨论】:

    标签: jenkins jenkins-plugins jenkins-pipeline


    【解决方案1】:

    我们使用Parameterized Trigger Plugin 来执行此操作。

    在您的构建配置中,在其他项目构建步骤上添加触发器/调用构建。将要触发的构建的名称添加为逗号分隔列表,并确保未选中阻止触发项目完成其构建框。您的构建将触发每个列出的构建,但请注意,您的父构建不会等待它们完成它只会触发它们然后执行其余的构建步骤,因此如果您有构建步骤。

    如果您确实想等待,请选中该块,直到触发构建完成框,但设置选项以设置何时使构建失败、构建步骤或适当地将构建标记为不稳定。

    如果您需要将参数传递给作业,您可以使用此插件添加参数。如果您的下游作业需要针对不同作业使用不同的参数,您可以单击添加触发器按钮,该按钮添加另一个要构建的项目,您可以在其中指定不同的选项。

    如果这些其他工作是当前工作的后续工作,并且您不需要等待它们完成,您也可以通过使用构建后操作构建其他项目来实现您想要做的事情,但这种情况再次发生在当前工作之后,您将无法使用结果。

    任何人都可以请提供我正确的方法。

    我不会以“一种正确的方式”的心态来使用 Jenkins。通常,您的构建要求将决定您在构建配置中使用哪种方法或插件。

    【讨论】:

    • 我遇到了这个,stackoverflow.com/questions/19223658/…,请提供你的想法,不管它是不是好方法!..
    • @ramki 我确定您正在尝试完成什么,因为您的问题是寻找一种从单个父作业开始多个下游作业的方法。这就是你提供的全部。您是否正在等待从这些下游作业中收集信息?你只是想开火然后忘记吗?您需要使用什么过程实际上取决于您的最终目标。您的链接帖子看起来有几个解决方案应该可以回答您提出的问题,但我自己从未尝试过其中任何一个,所以我无法说明它们的有效性。
    • 感谢您的回复,我不等待任何工作,我只想解雇实习生触发多个工作的父工作并根据子工作聚合父工作的状态!..如果一个子作业失败,那么父状态也应该显示失败!...
    • "如果您确实想等待然后检查块直到触发构建完成框,但设置选项何时使构建失败、构建步骤或适当地将构建标记为不稳定"你能解释一下吗这!..
    • Trigger/call builds on other projects 构建步骤添加到构建后,应该会出现一个显示Block until triggered projects finish their builds 的复选框。选择此项,然后在出现的三个下拉列表中根据调用的作业是否失败、成功或不稳定来决定您是否希望当前构建作业失败、继续或标记为不稳定。我无法发布我正在使用的詹金斯的屏幕截图。此方法将允许您收集有关被调用作业是否成功的信息,但不允许您这样做并并行运行子作业。
    【解决方案2】:

    该作业可以通过 jenkins api 启动其他作业。

    【讨论】:

    • 你的意思是来自 java 代码?..我想来自 Jenkins Web 界面
    • 您的工作可以在构建代码中执行,该代码将通过 api 调用其他 2 个工作。这段代码可以是任何可以在 bash 中执行的代码。
    【解决方案3】:

    更新答案:我使用管道插件来完成我的任务,如果你有参数化的触发器插件,tuffwer 是正确的!..

    【讨论】:

      猜你喜欢
      • 2015-12-03
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2013-02-21
      • 2019-04-22
      • 1970-01-01
      • 2015-04-26
      • 1970-01-01
      相关资源
      最近更新 更多