在 Azure Pipelines 中结帐时使用运行时变量作为存储库名称

use*_*189 7 azure azure-devops azure-pipelines azure-pipelines-tasks azure-pipelines-yaml

我在多阶段管道中有一个矩阵,它生成作业并签出到不同的 git 存储库并进行提交。

该矩阵将存储库名称作为值,我想在checkout任务期间引用它。但是,由于在运行时评估变量,我不断收到错误。

即矩阵

matrix:
  repo_foo:
    repo: foo
  repo_bar:
    repo: bar
Run Code Online (Sandbox Code Playgroud)

我想做一些类似的事情

steps:
- checkout: $[ variables['repo'] ]
Run Code Online (Sandbox Code Playgroud)

但这些不会被评估并在管道启动之前抛出错误。同样,使用${{ variables['repo'] }}也会失败,因为它在编译时进行评估,从而变成空字符串。

我已将潜在的存储库定义为管道 yaml 中的资源,并尝试将完整的 git 路径作为变量值传递。

我还有其他方法可以做到这一点吗?

Hug*_*Lin 2

根据测试,结帐步骤不应支持变量语法。

如果您在结帐步骤中使用变量来引用存储库,那么当您开始运行管道时,您将收到以下错误:

在此输入图像描述

steps:
- checkout: self | none | repository name # self represents the repo where the initial Pipelines YAML file was found
Run Code Online (Sandbox Code Playgroud)

你可以参考这个官方文档