有没有一种方法可以定义要从 git 标签而不是 master 导入的 azure 管道模板?

Is there a way I can define the azure pipeline template to be imported from a git tag instead of master?

考虑一个基于 yaml 的管道

resources:
  repositories:
    - repository: templates
      type: git
      name: My-Proj/azure-build-templates

...
stages:
  - template: test_pipeline/include-build-java-sonarqube.yml@templates
    parameters:
      agent_pool_name: $(agentPoolName)
      maven_goal: 'mvn clean package'
...

这将引用分支 master 中的存储库 azure-build-templates。有没有一种方法可以声明引用标签而不是 master?喜欢的名字:My-Proj/azure-build-templates@release-20211215-better-tag

其效用的上下文:最近我们在 master 中推送了一些东西,结果破坏了所有引用的管道。作为修复,我们不得不在 master 分支上使用 git 操作进行回滚。我想知道是否有一种方法可以从像 jenkins 这样的标签引用,而回滚只是从一个 git 标签指向另一个标签。 (每个版本的缺点是你更新了所有的管道,所以我愿意为模板发布管理提供任何建议)。谢谢。

参考:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/resources?view=azure-devops&tabs=schema#define-a-repositories-resource

您可以link任何参考

标签在 git 中表示为 refs/tags/myTag

resources:
  repositories:
  - repository: string  # identifier (A-Z, a-z, 0-9, and underscore)
    type: enum  # see the following "Type" topic
    name: string  # repository name (format depends on `type`)
    ref: string  # ref name to use; defaults to 'refs/heads/main'

您可以列出您的标签:git show-ref --tags