解决 Azure YAML Pipeline 多个变量组中变量名称重叠的问题

2023-12-08

我们正在努力将经典 Azure Pipelines 转换为 YAML Pipelines。不清楚的一件事是如何确保两个具有相同名称但不同含义的变量的不同变量组不会互相踩踏。

例如,如果我有变量组vg1 and vg2,每个变量都有名为secretDataDestination,如何确保正确secretDataDestination在 YAML 管道中使用?

一个更令人担忧的例子是,如果我们最初有两个变量组without重叠的变量名称,我们如何确保将新的重叠变量名称添加到组中不会取代最初预期的变量使用?


解决方法是利用输出变量在 Azure DevOps 中使用一些小型内联 PowerShell 任务代码。

首先,创造2个就业岗位。每个作业都有自己的变量组,在本例中Staging and Prod。两组都包含变量apimServiceName and apimPrefix。通过将变量回显为,将变量添加为作业输出isOutput=true像这样:

      - job: StagingVars
        dependsOn:
        variables:
          - group: "Staging"
        steps:
          - powershell: >-
              echo "##vso[task.setvariable variable=apimServiceName;isOutput=true]$(apimServiceName)"
              echo "##vso[task.setvariable variable=apimPrefix;isOutput=true]$(apimPrefix)"
            name: setvarStep

      - job: ProdVars
        dependsOn:
        variables:
          - group: "Prod"
        steps:
          - powershell: >-
              echo "##vso[task.setvariable variable=apimServiceName;isOutput=true]$(apimServiceName)"
              echo "##vso[task.setvariable variable=apimPrefix;isOutput=true]$(apimPrefix)"
            name: setvarStep

然后,在新作业中使用变量,在其中指定新变量名称并导航到作业输出以获取值,这是有效的,因为每个变量组都放入自己的作业中,因此它们不会覆盖任何变量:

      - job:
        dependsOn:
          - StagingVars
          - ProdVars
        variables:
          ServiceNameSource: "$[ dependencies.StagingVars.outputs['setvarStep.apimServiceName'] ]"
          UrlprefixSource: "$[ dependencies.StagingVars.outputs['setvarStep.apimPrefix'] ]"
          ServiceNameDestination: "$[ dependencies.ProdVars.outputs['setvarStep.apimServiceName'] ]"
          UrlprefixDestination: "$[ dependencies.ProdVars.outputs['setvarStep.apimPrefix'] ]"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决 Azure YAML Pipeline 多个变量组中变量名称重叠的问题 的相关文章

  • VSTS 使用 API 在队列时设置构建参数

    我需要对来自 REST API 的 VSTS 构建进行排队 记录于https learn microsoft com en us rest api vsts build builds queue view vsts rest 4 1 htt
  • 替换javascript中字符串中的多个字符

    我得到了这段不错的代码 但我不知道为什么不起作用 出于兼容性目的 它应该获取文本输入的值并用 HTML 代码替换每个给定的国家字符 但是 当我单击按钮时 该函数返回字符串而不进行任何更改 任何想法 jsfiddle http jsfiddl
  • 如何更新 YamlDotNet 中的属性值?

    我正在尝试加载现有的 yaml 文件并更新其一些属性 然而 我正在努力not覆盖其他属性 My yaml A a1 value1 a2 value2 所需的 yaml A a1 value1 a2 modified 我目前有以下代码 但我只
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • 标签上的 Azure Pipeline 触发器

    我正在制作两条管道 其中之一将在 Dev 和 Master 分支上的 PR 上触发 另一个仅用新标签触发 所以对于第一个 我有触发器 pr master dev 第二个 trigger tags include exclude master
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • 在 PHP 中使用可变变量是不好的做法吗?

    例如 一个简单的MVC类型系统 api class method使用重写为 PHP 变量 htaccess nginx conf 然后做类似的事情
  • Azure DevOps 管道构建工件中缺少 Gulp 编译的 CSS 文件夹

    一点背景 我有一个小型 dotnet 核心应用程序 该应用程序托管在 Azure 上 并且正在使用 Azure DevOps Pipelines 进行构建和部署 在我们开始使用 DevOps Pipelines 之前 CI 直接连接到 Az
  • 在 Twig 的父作用域中设置变量

    在Smarty你可以做 var bla scope parent 在 Twig 中可能吗 不建议使用块 我知道 我需要变量 如果您不想使用default 过滤器 即 当您想在整个父模板和子模板中多次使用该变量时 您实际上可以在父模板中定义一
  • T-SQL 表名别名

    在我的 T SQL 脚本中 我多次引用相同的长表名称 我在不同的表上使用这个查询 有没有办法通过变量引用表名 如果是这样 我可以简单地在脚本将使用的顶部声明一个变量 只需设置值 我就可以在各种表上运行它 而无需在脚本中进行更改 有几个选择
  • 如何将 .attr("id") 存储在变量中

    你们以前非常有帮助 我已经在 stackoverflow 上搜索了一段时间 但找不到答案 希望这是一个简单的问题 我试图将当前悬停的 div 的 id 存储在变量中 然后 我想使用该变量来切换具有相同 id 的图像 您可以看到 我尝试将变量
  • 结帐时多存储库抛出 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 我想
  • 在Java中,为什么某些变量首先需要初始化,而其他变量只需要声明?

    我试图更深入地理解我是否遗漏了一些关于 Java 何时需要变量初始化与简单声明的理解 在以下代码中 不需要为变量 row 赋值即可编译和运行 但变量 column 则需要赋值 注意 该程序没有任何用处 它已被修剪为仅显示此问题所需的内容 以
  • 在 azure devops 门户上查看代码覆盖率报告

    我正在运行 NUnit 测试 Net Framework 4 5 中的项目 作为 azure devops 构建管道的一部分 task VSTest 2 inputs testAssemblyVer2 tests Tests dll pat
  • YAML 每个缩进有多少个空格?

    如果我在每个缩进级别使用一个空格 两个或四个空格 有什么区别吗 YAML 每个结构类型的空间数量有什么具体规则吗 例如4嵌套空间maps 1每空间项目清单 etc 我正在为 elastic beanstalk ebextensions 编写
  • 如何在 YAML 文件中为简单的 POJO 定义映射?

    我在用蛇YAML https bitbucket org snakeyaml snakeyaml将某些配置 属性值解析为配置对象 下面定义 我的 YAML 文件如下所示 Thread batchLimit 1000 threadCountL
  • 如何使用服务帐户模拟 Azure Devops 中的用户

    我创建了一个服务帐户来模拟组织中的用户 以便以用户的名义更改工作项 我已经将该服务帐户添加到 项目收集服务帐户 组中 其中 代表其他人提出请求 设置为 允许 服务帐户具有 Visual Studio 订阅 然后 我使用与本地 TFS 配合使
  • Jekyll + GitHub Pages 网站中的尾部斜杠导致 404

    我希望在我的网站上解析以下所有 URL 该网站是使用 Jekyll 构建并托管在 GitHub Pages 上的 https michaeledelstone com about https michaeledelstone com abo

随机推荐