【发布时间】:2019-09-07 00:19:14
【问题描述】:
我有一个触发构建的脚本。该构建之后是发布管道。在我的脚本中,我可以弄清楚发布的 url 是什么,但我不明白脚本如何决定发布管道何时完成。
假设,没有交互式批准。还是:
- 发布状态似乎停留在“活动”状态,不管所有阶段是否已经收敛到某个最终状态。
- 阶段可以是“notStarted”、“inProgress”、“rejected”、“cancelled”或“succeeded”。
我认为可以通过对所有阶段的状态进行一些分析,同时考虑到管道的拓扑结构来解决问题,但这似乎太复杂了。
是否有可能在脚本中等待,直到某个版本进入最终状态,从该状态无法更改?
编辑 1
我可以编写一个轮询循环。这就是我要弄清楚构建何时结束。但是对于发布,我遇到了停止条件的问题 - 我只是不知道它是什么。
编辑 2
考虑以下管道:
+---> A
/ \
Start + -[Promoted only if (*) is true]-> C ---> D
\ /
+---> B
(无人工审批) 现在假设构建不满足条件 (*),因此发布在 A 和 B 上运行后有效停止,但不是 C。环境上的状态将是:
- A = 成功或拒绝
- B = 成功或拒绝
- C = 未开始
- D = 未开始
那么,在这种情况下,等待循环的停止条件是什么?是否可以在不发现发布管道拓扑的情况下做到这一点?
【问题讨论】:
标签: azure-devops azure-devops-rest-api