如何在 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?