从 CD 管道检测 CI 触发器的原因
Detect from CD pipeline the cause of the CI trigger
在我的 Azure DevOps 管道中,当 PR(从功能分支到开发分支)或直接推送到开发分支(DevOps 工程师具有 'force push' 权限)时,CI 构建自动触发。一旦构建完成,CD 管道就会启动(启用持续集成)。
有没有办法从 CD 管道 (PowerShell) 检测 CI 构建是从 PR 还是直接推送触发的?
RELEASE_REASON
说 Manual 或 ContinuousIntegration 这对我的情况没有帮助。
使用 REST API 获取构建详细信息说 "reason": "individualCI"
这对两者都没有帮助。
您可以使用此 rest api 获取构建触发器的原因:
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.1
我用 post man 测试,如果构建的原因是 CI,构建的原因将是个别的CI
如果构建的原因是拉取请求,则构建的原因将是拉取请求。
注意如果你启用持续集成并在分支策略中设置pr触发构建,那么当你创建一个pr触发构建时,构建流水线实际上会运行两次构建,一个是创建PR触发的,一个是cipr完成后目标分支变化触发的构建
在我的 Azure DevOps 管道中,当 PR(从功能分支到开发分支)或直接推送到开发分支(DevOps 工程师具有 'force push' 权限)时,CI 构建自动触发。一旦构建完成,CD 管道就会启动(启用持续集成)。
有没有办法从 CD 管道 (PowerShell) 检测 CI 构建是从 PR 还是直接推送触发的?
RELEASE_REASON
说 Manual 或 ContinuousIntegration 这对我的情况没有帮助。
使用 REST API 获取构建详细信息说 "reason": "individualCI"
这对两者都没有帮助。
您可以使用此 rest api 获取构建触发器的原因:
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.1
我用 post man 测试,如果构建的原因是 CI,构建的原因将是个别的CI
如果构建的原因是拉取请求,则构建的原因将是拉取请求。
注意如果你启用持续集成并在分支策略中设置pr触发构建,那么当你创建一个pr触发构建时,构建流水线实际上会运行两次构建,一个是创建PR触发的,一个是cipr完成后目标分支变化触发的构建