【问题标题】:Start Jenkins job within a parent job without wait for child to finish在父作业中启动 Jenkins 作业,无需等待子作业完成
【发布时间】:2022-02-24 21:13:47
【问题描述】:

我正在使用 Multijob 插件从父作业运行子作业。

当调用子作业时,主作业会等待它完成,然后再继续执行。

我希望父母立即打电话给孩子并继续执行。它也应该在不依赖孩子的情况下以 SUCCESS 结束(孩子正在清洁环境,这项工作很长,如果失败也不应该让父工作失败)

谢谢。

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    找到一种通过 HTTP POST 触发作业的方法:

    curl -s -X POST "http://user:pass@jenkins-ip:8080/job/myjob/buildWithParameters?token=mytoken&K1=${K1}&K2=${K2}"
    

    这会发送一个触发器来启动一个作业,并且无需等待即可继续。

    注意:需要将子作业配置为使用 http 调用的令牌“远程触发”。

    【讨论】:

      【解决方案2】:

      来自 Jenkins 文档:Pipeline: Build Step

      传播(可选) 如果启用(默认状态),则此步骤的结果是下游构建的结果(例如,成功、不稳定、失败、未构建或中止)。如果禁用,则即使下游构建不稳定、失败等,此步骤也会成功;根据需要使用返回值的结果属性。 类型:布尔型

      等待(可选) 如果为 true,管道将等待构建步骤的结果,然后再跳转到下一步。默认为真。 类型:布尔型

      所以你需要做的就是设置等待为假并传播为假 示例:

      build job: "child-job", wait: false, propagate: false
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-02
        • 1970-01-01
        • 2015-10-23
        • 2012-11-18
        • 1970-01-01
        相关资源
        最近更新 更多