从CD管道检测CI触发的原因

时间:2019-08-29 12:09:51

标签: azure-devops azure-pipelines azure-devops-rest-api

在我的Azure DevOps管道中,当PR(从功能分支到dev分支)或对dev分支的直接推送(DevOps工程师具有“强制推送”特权)时,会自动触发CI构建。构建完成后,就会立即启动CD管道(启用了持续集成)。

从CD管道(PowerShell)是否有一种方法可以检测是否通过PR或直接推送触发了CI构建? RELEASE_REASON说“手动”或“连续整合”,对我而言没有帮助。

使用REST API来获取构建详细信息,"reason": "individualCI"对此无济于事。

1 个答案:

答案 0 :(得分:3)

您可以使用此rest api来获取生成触发器的原因:

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.1

我与邮递员一起测试,如果构建的原因是CI,则构建的原因将是个人CI

enter image description here enter image description here

如果构建的原因是请求请求,则构建的原因将是请求请求。 enter image description here enter image description here

注意,如果您启用持续集成并在分支策略中设置pr触发器构建,那么当您创建pr来触发构建时,构建管道实际上会运行两个构建,一个通过创建来触发PR,另一种是在pr完成后由目标分支的更改触发的ci构建。