如何在 Azure DevOps 构建管道模板中设置构建名称 (Build.BuildNumber)?

2024-03-13

我需要创建多个构建定义,它们都将执行完全相同的步骤。基本上,改变的只是触发器和一些参数。因此,我将它们全部基于一个可以完成所有繁重工作的模板。效果很好。

但是,我需要自定义的值$(Build.BuildNumber)出于多种原因,有些是美观的,有些是实用的。根据,我所要做的就是设置nameYAML 定义中的属性。

我所有的定义都应该具有相同的名称格式,所以我想直接在模板中定义它。但设置一个顶级name模板中的属性会导致错误消息:

/templates/default-build.yml(行:5,列:1):意外值“名称”

在各个定义中设置属性可以按预期工作,但不会作为解决方案“扩展”。

各个定义如下所示:

trigger:
- master

extends:
  template: ../templates/default-build.yml
  parameters:
    solution: '**/ASolution.sln'

模板如下所示:

parameters:
- name: solution
  type: string
  default: ''

name: $(Build.DefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)  # Trying to set Build.BuildNumber

variables:
  solution: ${{ parameters.solution }}
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

stages:
- stage: build_solution
  jobs:
    - job:
      steps:
        - task: VSBuild@1
          displayName: 'Build solution $(solution)'
          inputs:
            solution: $(solution)
            platform: '$(BuildPlatform)'
            configuration: '$(BuildConfiguration)'

        - task: PublishBuildArtifacts@1
          displayName: 'Publish Artifact'
          inputs:
            PathtoPublish: '$(build.artifactstagingdirectory)'
            ArtifactName: '$(Build.BuildNumber)'

我错过了什么吗?或者(当前)不支持在模板中设置此特定属性?


您可以在调用以下命令的 Powershell 任务中执行此操作##vso[build.updatebuildnumber]'命令'。

该任务也可以定义为模板,如下所示:

steps:

- task: PowerShell@2
  displayName: 'Create version number'
  name: 'CreateVersionNumber'
  inputs:
    targetType: 'inline'
    script: |
        $newVersion = "MyVersion $(Build.BuildId)"

        Write-Host "New version is $($newVersion)"

        [string] $buildName = "$($newVersion)"
        Write-Host "Setting the name of the build to '$buildName'."
        Write-Host "##vso[build.updatebuildnumber]$buildName"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Azure DevOps 构建管道模板中设置构建名称 (Build.BuildNumber)? 的相关文章

  • Azure DevOps - 使用 GUI 而不是 YAML 来编辑构建管道

    不久前 Azure DevOps 添加了对 YAML 构建管道的支持 这对于高级用户来说非常好 我明白 专业人士只使用命令行和纯文本工具 GUI 适合弱用户 原因有很多 有没有办法返回 GUI 经典编辑器 来编辑现有管道 我已禁用该功能 如
  • 在 TFS 下的 CI 队列上构建时包未恢复(VS Online VS2015)

    我问过一个关于构建错误的问题 https stackoverflow com questions 34808954 build errors of missing packages in visual studio online并继续由我绝
  • 使用 tf.exe 设置 Azure DevOps Pipeline 的分支权限

    我有一个 Powershell 脚本 它尝试设置在构建管道中调用的分支权限 不幸的是 我收到了未经授权的错误 但我不知道为什么 代码片段 tfExe split path parent MyInvocation MyCommand Defi
  • 如何使用 REST API 列出 TFS GIT 存储库中的所有文件

    全部 我正在尝试使用 REST API 获取 TFS GIT 中特定存储库中的所有文件的列表 我找到了下面的一个 但它只显示 scopePath buld xml 后面提到的特定文件名的内容 它只显示文件build xml的内容 但我试图仅
  • 默认“合并后完成链接的工作项”为未选中

    VSTS 中出现了 PR 完成的新功能 其中默认标记为完成的 PR 也会将链接的工作项标记为完成 除非未选中 如果可能错过此复选框 是否可以将其默认为未选中 自 2017 年 8 月 28 日起 您可以更改此复选框的默认行为 虽然它默认为
  • VS 2013 CodeLens

    当我从 Visual Studio Team Services scrum 3 模板 打开项目时 我只得到CodeLens引用计数 这是VS的一个bug吗 为什么我没有CodeLens与完整的TFS 版本控制评论 编辑等 FYI 我已启用
  • 结帐时多存储库抛出 TF401019

    我正在尝试检查管道中的不同存储库 这些将是完整的 URL 因此两个存储库都位于同一个 Azure DevOps 中 https dev azure com company Services git mylocal https dev azu
  • ng run project:deploy - 项目目标不存在

    我有一个 Angular Web App 的工作生产版本 我的 Azure 帐户 免费套餐 上有一个有效订阅 其中包含 AppService 计划 应用服务 资源组 存储帐户 KeyVault SQL Server 和 SignalR 我想
  • 如何使用服务帐户模拟 Azure Devops 中的用户

    我创建了一个服务帐户来模拟组织中的用户 以便以用户的名义更改工作项 我已经将该服务帐户添加到 项目收集服务帐户 组中 其中 代表其他人提出请求 设置为 允许 服务帐户具有 Visual Studio 订阅 然后 我使用与本地 TFS 配合使
  • TFS Rest API 签入版本控制

    我需要能够从 VSTS 扩展签出 编辑和签入 本地 TFVC TFS 存储库 v2015 3 在文档中https www visualstudio com en us docs integrate api tfvc overview htt
  • 为什么 TFS 构建步骤扩展图标丢失?

    我按照 MS 教程为 TFS 创建了一个新扩展 由于某种原因 当我将图标添加到扩展程序时 我可以在安装扩展程序时在 扩展程序管理器 页面中看到此图标 但是当我选择我的扩展时从构建步骤菜单中图像丢失 在 vss extension json
  • 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth

    我正在尝试通过 Azure DevOps 上的 Nuke 和 CI CD 自动执行 NuGet 包更新 一切都构建得很好 但在 PushNuGet 步骤中 该过程尝试通过弹出窗口向 Azure 进行身份验证 这显然从未在 in devops
  • 使用 VSTS 通过 VSTS 包和旧式 csproj 构建解决方案

    我有一个解决方案 具有以下内容 带有旧式 csproj 的多个库 net461 带有新 csproj 的多个项目 net461 Net core 库和我们的应用程序 但目标是 net461 并引用旧样式的 csproj 项目 我使用 VST
  • 在 Databricks 集群上 pip-install 来自 Azure Artefact 的 Python 包

    我有一个小型演示包 已将其发布到 Azure Devops 我可以通过启动虚拟环境并将特定的全局设置添加到我的本地环境中来进行 pip 安装 pip conf file 现在 我想将其安装到我的 databricks 集群中 我无法找到任何
  • Azure Devops Pipeline 环境资源代理安装问题

    我一直在尝试在 azure devops 中向我们的管道添加环境资源 但每次我使用他们提供的 powershell 脚本安装它时 它都会要求我提供标签 如果我不想输入标签 则会出错 如果我选择放入标签 则会出错 无论哪种方式 它每次都会重新
  • 如何使用 Azure DevOps 的 python 客户端 API 将用户添加到 Azure DevOps?

    我正在编写一个 python 脚本来将用户 来自 AAD 支持的提供商的现有用户 添加到 Azure DevOps 我正在使用 Azure DevOps 的 python 客户端库来实现此目的 身份验证后 我可以从 azure devops
  • 如何获取Azure DevOps Pipelines中变量的单元测试结果?

    我在 Azure DevOps 中有一个构建管道 并且正在使用 NET Core 任务来应用单元测试 我需要获取变量中单元测试的结果 例如 如果有 10 个测试用例 其中两个失败 我需要得到如下信息 failedTestCases 2 su
  • TFS 在线构建在具有 TF270016 / TF270002 的本地构建服务器上失败

    我们使用 Visual Studio Online 但我们有本地构建控制器和构建代理 在过去 6 个月左右的时间里 它一直运行良好 但就在本周 构建一直失败 软件本身似乎构建成功 测试似乎也通过了 但由于发布日志文件期间出现错误而失败 请参
  • 发布管道中的 Azure DevOps 日志记录命令

    我试图通过在任务中设置一些环境变量来自定义管道版本的输出 我找到了以下链接 然而这似乎不起作用 我所做的只是创建一个具有单个任务 bash 或 PS 的管道 并通过任务的内联版本声明链接中指定的命令 有人已经成功地使这些命令起作用了吗 我做
  • 文件提取失败:在 ExtractFiles@1 中

    我有一个 React js 应用程序 当前为 Azure CI CD 管道设置 突然它在发布阶段开始失败 它正在成功构建 我可以看到在工件中创建的 zip 文件 提取文件任务集在遵循方式 https learn microsoft com

随机推荐