Azure devops Azure devops:检查其他版本的发布状态

Azure devops Azure devops:检查其他版本的发布状态,azure-devops,Azure Devops,我有一个在X环境中发布的版本a。 另一方面,我有一个发布在环境Y中的版本B 问题是我想知道我是否可以在版本B中检查版本A的状态,这样我就可以抛出一个错误而不发布版本B 我不知道是否可以用powershell或类似的工具来实现这一点 有什么想法或方向吗?使用Azure DevOps REST API的PowerShell脚本是最好的选择。你的问题有点奇怪 您需要找到版本A和环境Y的定义ID。找到这些值的最佳位置是在环境Y中版本A部署的“初始化作业”任务的日志输出中。查找变量release_DEFI

我有一个在X环境中发布的版本a。 另一方面,我有一个发布在环境Y中的版本B

问题是我想知道我是否可以在版本B中检查版本A的状态,这样我就可以抛出一个错误而不发布版本B

我不知道是否可以用powershell或类似的工具来实现这一点


有什么想法或方向吗?

使用Azure DevOps REST API的PowerShell脚本是最好的选择。你的问题有点奇怪

您需要找到版本A和环境Y的定义ID。找到这些值的最佳位置是在环境Y中版本A部署的“初始化作业”任务的日志输出中。查找变量release_DEFINITIONID和release_ENVIRONMENTID

假设Azure管道采用“经典”模式(不基于YAML):

  • 启用管道“代理阶段”的复选框
  • 添加PowerShell任务,并使用List Deployments端点查询最新版本的“release definition a”(有关完整示例,请参阅下面的链接答案,简化版本)
  • 检查发布的状态,如果不符合您的条件,则抛出错误

  • 可选地,如果这个版本依赖于另一个版本,它们需要作为一个单元一起部署——为什么不考虑将多个工件添加到发行版中并作为单个发行版部署呢?

    它应该与BraybCKoE的解决方案一起解决。如果有效的话,你可以试着把bryanbcook的回复标记为答案。非常感谢。我不能添加多个工件,因为体系结构更复杂。
    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