Azure Pipelines - 将自定义变量设置为内部版本号

标签 azure powershell azure-devops azure-pipelines-release-pipeline

在我的 Azure 构建管道(经典,不是 YAML)中,我将构建号设置为分支名称,然后设置修订号变量。这是我的过程: 管道 -> 管道 -> {我的管道} -> 编辑 -> 选项 -> 版本号格式

$(SourceBranchName)$(Rev:.r)

在我的测试中,效果很好。

现在,在我的发布管道中,我运行的第一个脚本是一个 PowerShell 脚本,它获取内部版本号,并将其应用于我创建的本地变量 (MyBuild)。脚本如下:

Write-Host "Pipeline = $($pipeline | ConvertTo-Json -Depth 100)"
$buildNumber = $Env:BUILD_BUILDNUMBER
$pipeline.variables.MyBuild.value = $buildNumber

稍后在管道中使用此变量来创建一个包含我的发布文件的文件夹。

$(BuildDirectory)/$(MyBuild)/Debug

由于某种原因,我的变量总是落后一个版本。例如,如果我的内部版本号是 master.5,则我的发布管道创建的文件夹是 master.4。我尝试更改脚本在管道中的顺序,但这并不能解决任何问题。这很奇怪,因为我的构建管道是正确的(总是正确命名,例如 master.1、master.2、master.3 等),但我的发布管道变量始终落后一个修订版。

最佳答案

用于更新自定义内部版本号的 Powershell 脚本

- powershell: |
[string]$version="$(Build.Repository.Name)_SomeCustomData_$(Build.BuildId)"
Write-Output "##vso[build.updatebuildnumber]$(Version)"
displayName: Set Build Number

关于Azure Pipelines - 将自定义变量设置为内部版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61373709/

相关文章:

angularjs - CORS 预检请求在 Azure 托管 Web API 中通过 302 重定向进行响应

azure - AzureRM 中的 "az functionapp"相当于什么?

visual-studio - 使用 VSTS 实现 SQL Server 单元测试自动化 - Team Services

azure-devops - 有没有办法在Azure DevOps中克隆或复制现有的Ci/CD管道

azure - 从具有模式的目录中获取最新文件

Azure Policy DeployIfNotExists 无法更改值

node.js - Azure AMS Node js 应用程序无法建立 TLS 1.2 连接

azure - 如何为 Cosmos DB 内置数据读取器角色设置特权身份管理

windows - 如何使用 gnuwin32 Makefile 执行 powershell/cmd 命令?

docker - 将 env 变量从 Powershell 传递到 Docker 镜像内的 Powershell 脚本