【问题标题】:Azure Build Pipeline: How to pass a "multiline variable" to a build template?Azure Build Pipeline:如何将“多行变量”传递给构建模板?
【发布时间】:2021-07-18 21:48:51
【问题描述】:

我有这个 Azure 构建管道,它启动一个 VSTest 任务。它应该测试所有以“Unittest.csproj”结尾的项目,但它应该排除以“Common.Unittest.csproj”结尾的测试项目:

# my-azure-pipeline.yaml:

...
steps:
- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: |
      **/*Unittest.csproj
      ! **/*Common.Unittest.csproj
...

这很好用。

由于我有几个类似的构建,我想提取一个构建模板 (myTemplate.yaml),它现在使用变量 $(testprojects) 来表示值“testAssemblyVer2”:

# myTemplate.yaml

...
steps:
- task: VSTest@2
  inputs:
    testSelector: 'testAssemblies'
    testAssemblyVer2: $(testProjects)
...

现在我尝试像这样设置变量,但没有运气:

# my-azure-pipeline.yaml

...
variables:
  - testProjects: |
      **/FistUnittestProject.csproj
      ! **/SecondUnittestProject.csproj
    
extends:
  template: myTemplate.yaml
...

我想知道通过变量定义“多行事物”的正确方法是什么?

任何帮助表示赞赏。

【问题讨论】:

    标签: azure azure-devops azure-pipelines


    【解决方案1】:

    不过,目前不支持在 Azure DevOps 中创建多行变量。您可以对此user voice 投票。如果获得足够多的票数,微软产品团队将认真考虑该提案。

    作为替代方法,您可以使用 PowerShell 任务输出换行符来设置多行变量。

    详细步骤请参考this answer。我已经测试过了,效果很好。

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 2021-07-28
      • 2022-06-29
      • 1970-01-01
      • 2022-06-29
      • 1970-01-01
      • 2017-11-10
      • 2016-09-26
      • 1970-01-01
      相关资源
      最近更新 更多