如何在 Azure DevOps yaml 管道中设置 ENVIRONMENT 状态

Posted

技术标签:

【中文标题】如何在 Azure DevOps yaml 管道中设置 ENVIRONMENT 状态【英文标题】:How can I set ENVIRONMENT status in Azure DevOps yaml pipeline 【发布时间】:2021-08-19 08:03:32 【问题描述】:

我正在 Azure Devops 中创建 CICD 管道。

我有动态设置名称的管道。

name: 'Set dynamically below in a task' 

然后在BUILD阶段我更新它

[string] $date = (Get-Date -Format 'yyyyMMdd')
[string] $projectVersion = (Get-Content 'version.json') -join "`n" | ConvertFrom-Json | Select -ExpandProperty "version"      
[string] $buildName = "$projectVersion.$(Build.BuildId)+$date.API"     
Write-Host "##vso[build.updatebuildnumber]$buildName"

我目前有 3 个阶段

    构建 积累 通过 VSO 命令设置构建名称 发布工件 部署到 DEV 下载工件并部署到开发环境 部署到测试 下载工件并部署到测试环境

我实际上是在 Azure Devops 中使用 ENVIRONMENT 来跟踪所有部署,这就是问题所在。虽然管道内部版本号在管道视图中正确更新

当我转到环境选项卡时,会显示未更新的构建名称。

我该如何改变呢?

【问题讨论】:

【参考方案1】:

可以在不同环境之间进行设置,比如

FIRSTENVIRONMENT
echo "##vso[task.setvariable variable=VAR1;isOutput=true;]$VALUE";

SECONDENVIRONEMENT
- job: ‘JOBNAME’
       variables:
         var2: $[ dependencies.Build.outputs[Firstenvironment.VAR1] ]

【讨论】:

问题不是在阶段之间传递变量。但是如何更新部署阶段名称,因为为部署作业执行相同的任务并不能完成作业: - 部署:DeployToDev 然后在 runOnce 策略步骤中我执行相同的 vso[build.updatenumber] .... 它不是反映在 ENVIRONMENTS 状态窗格中

以上是关于如何在 Azure DevOps yaml 管道中设置 ENVIRONMENT 状态的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure DevOps yaml 管道中设置 ENVIRONMENT 状态

合并 PR 后如何限制 Azure DevOps YAML 管道中的关联工作项?

如何排除对管道 yaml 文件的更改以触发构建 i azure devops?

Azure DevOps、YAML 发布管道? [关闭]

请参阅使用 YAML 管道在 Azure DevOps 中构建工件

Azure DevOps 中的多个 YAML 构建管道