显然不可能用
同一文件夹下的相同 azure-pipeline.yaml 名称。
是的,不能在同一个文件夹下创建多个同名的 yaml 管道。原因是 yaml 管道受版本控制,Azure Devops git 不支持同一文件夹中的两个同名文件...
我们可以做的是在同一个文件夹中创建多个不同名称的管道,例如azure-pipeline.yaml,azure-pipelines-1.yml,azure-pipelines-2.yml等等。
不确定您在编辑 yaml 管道时是否知道此选项:
我们可以在源码管理中轻松更改yaml文件的名称,这里只需要修改路径即可:
组织 azure 管道 yaml 文件的最佳做法是什么?
是不是直接放到项目的根目录下?
假设您拥有一个团队项目,其中包含两个存储库 A 和 B:
如果 A 和 B 都代表一个最终产品的模块,那么 A 和 B 应该有相应的管道。这意味着在大多数情况下,您应该在 RepoA 中至少有一个管道,在 RepoB 中应该有一个。他们都需要对应的azure-pipeline.yaml文件。
现在如果 RepoA 中的 azure-pipeline.yaml 和 RepoB 中的 azure-pipeline.yaml 有许多相同的变量/任务/作业,我们可以考虑将重复的内容移动到 templates。我们可以在同一个项目中创建一个 RepoC 来存储模板,在这个模板 repo 中,我们不需要在这里创建 yaml 管道。
关于如何在 RepoA 的管道中引用 RepoC 中的模板,请参阅this document。如果源码在github,可以查看Krzysztof的链接。如果 RepoC 位于 Azure Devops Repos 并且与您的 RepoA 和 RepoB 相同的项目中,您可以采用以下格式:
resources:
repositories:
- repository: templates
type: git
name: RepoC
ref: refs/heads/master
综上所述,功能性repos(有源代码的)应该有相应的yaml管道。如果你想出于某种目的监控一个 repo(没有源代码)中的变化,你也可以在其中有一个 yaml 管道。对于模板仓库,不需要 yaml 管道。
此外,除了 yaml 管道,您有时可能会使用不受版本控制的经典构建/发布管道。见this。