我有一个触发构建的脚本。该构建之后是发布管道。在我的脚本中,我可以弄清楚发布的URL是什么,但是我不理解该脚本如何确定发布管道的完成时间。
假设没有交互式批准。还是:
我想可以通过对所有阶段的状态进行一些分析来弄清楚事情,同时考虑到管道的拓扑结构,但这似乎太复杂了。
是否有可能完全在脚本中等待,直到某个发行版进入最终状态,因此无法进行任何更改?
编辑1
我可以编写一个轮询循环。这是我要弄清楚构建何时结束的工作。但是对于发行版,我遇到了停止条件的问题-我只是不知道它是什么。
编辑2
考虑以下管道:
+---> A
/ \
Start + -[Promoted only if (*) is true]-> C ---> D
\ /
+---> B
(无人工批准) 现在,假设构建不满足条件(*),因此在A和B(而不是C)上运行后,发行版将有效停止。环境的状态为:
那么,在这种情况下将使其停止的等待循环的停止条件是什么?是否可以在不发现发布管道拓扑的情况下做到这一点?
答案 0 :(得分:0)
不幸的是,没有任何阻塞的API调用。您需要编写一个循环(例如PowerShell)以检查状态的变化。
Release中有两个“状态”字段。
第一个是发行版的整体状态,例如,在将其标记为“已放弃”且不再是用于生产的发行版候选版本之前,已将其部署到两个环境中。您可以通过选择“释放”并选择“放弃”来在UI中设置此状态。
第二个状态是针对正在部署的每个环境。每个ReleaseEnvironment都有一个EnvironmentStatus。令人惊讶的是,那里没有“失败”状态,但是您对不是“未开始”却是“成功”的任何事物都感兴趣。 (也许是部分成功的指示,是某件事发生了失败,而没有将整个环境标记为失败?)。
如果启用了部署前或部署后批准,则可能需要考虑第三种状态。它们处于preDeployApprovals状态(ApprovalStatus)和postDeployApprovals节点。