我有一个场景可以在POST BUILD ACTION中触发另一个构建,这将需要1m的时间来完成,我只想使当前构建等待该依赖项作业完成(持续时间为1m)并更新状态(COMPLETED) ,失败,不稳定)。
这就像我有一个名为A和B的工作。B是需要在JOB A中的POST BUILD ACTION中运行的依赖项。一旦JOB B完成执行(持续时间为1M),我想发布JOB的状态答:需要保留作业A,直到在POST BUILD ACTION中完成作业B为止。
我该如何实现?任何潜在客户...
答案 0 :(得分:1)
如果您不只在 Post Build (发布后版本)部分中进行限制,这非常容易(例如,当您仅在主版本稳定时才需要触发其他版本时,但是我认为1分钟的工作您根本不在乎)。
您只需要安装Parameterized Trigger插件,它将允许您在 Build 部分(而不是 Post Build )中添加Trigger/call builds on other projects
部分)。并且您还需要启用Block until the triggered projects finish their builds
选项以等待作业B完成并检查作业B的状态:
答案 1 :(得分:0)
听起来像棘手的问题一样需要解决,因为POST BUILD意味着作业B将在作业A完成后触发。
您可以尝试并行触发作业A和作业B,并且对于作业B,您可以使用Execute shell
向sleep 5m
添加一个构建步骤,以便作业B进入睡眠状态刚开始需要5分钟,然后它将运行您想要的实际作业。在Job A中,您可以有一个Shell脚本,该脚本将循环读取Job B的控制台输出,并在Job B的控制台产生输出Finished:
之后结束循环,然后您可以继续执行逻辑根据作业输出。
要读取控制台输出,您可以循环执行以下操作(并为Finished:
关键字使用grep):
curl -u ${USERNAME}:${TOKEN} {JENKINS_URL}/job/{JOB_NAME}/lastBuild/consoleText | grep {what you need}
答案 2 :(得分:0)
您需要将PostBuildScript插件与Parameterized Trigger插件一起使用。 PostBuildScript将为您提供一个称为“执行脚本”的构建后步骤,这将使您能够在构建后阶段添加“参数化触发器”构建步骤。因此,您可以将其配置为等待触发的作业完成。