我有一个在X环境中发布的版本A。另一方面,我有一个发布在环境Y中的B版。
问题是,我想知道是否可以检查B版中A版的状态,这样我就可以抛出一个错误而不发布B版。
我不知道用powershell或类似的工具是否能做到这一点。
有什么想法或方向吗?
发布于 2019-08-13 14:23:33
使用Azure PowerShell REST的DevOps脚本是最好的选择。你的问题有点类似于这个。
您需要找到发行版A和环境Y的定义ids。找到这些值的最佳位置是在环境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或者,如果这个版本依赖于另一个版本,并且他们需要作为一个单元一起部署--为什么不考虑将多个工件添加到发行版中,然后作为一个单独的版本部署呢?
https://stackoverflow.com/questions/57475729
复制相似问题