我有一个发布A,它在X环境中发布。 另一方面,我有在环境Y中发布的发行版B。
问题是我想知道是否可以检查发行版B中发行版A的状态,因此我可以抛出错误而不发布发行版B。
我不知道是否可以使用powershell或类似工具来做到这一点。
有什么想法或方向吗?
答案 0 :(得分:2)
使用Azure DevOps REST API的PowerShell脚本是您最好的选择。您的问题有点similar to this one。
您需要找到版本A和环境Y的定义ID。找到这些值的最佳位置是环境Y中版本A的部署的“初始化作业”任务的日志输出。变量 RELEASE_DEFINITIONID 和 RELEASE_ENVIRONMENTID 。
假定Azure管道(不是基于YAML)的“经典”模式:
param()
$auth = "Bearer {0}" -f $env:SYSTEM_ACCESSTOKEN
$url = "https://{0}{1}" -f $env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI $env:SYSTEM_TEAMPROJECTID
$url += "/release/deployments?definitionId=" + $your_release_definition_id
$url += "&definitionEnvironmentId=" + $your_environment_definition_id
$url += "&deploymentStatus=succeeded"
$url += "&queryOrder=descending"
$url += "&api-version=5.0"
$releaseA = Invoke-WebRequest $url -Headers @{Authorization=($authHeader)} | ConvertFrom-Json
或者,如果此发行版依赖于另一个发行版,并且它们需要作为一个单元一起部署-为什么不考虑在该发行版中添加多个构件并作为一个发行版部署呢?