【发布时间】:2021-02-22 18:58:42
【问题描述】:
我希望为微服务以及登台和生产提供单独的管道。它看起来像这样:
我刚刚开始设置azure-pipelines.yaml 并将其作为admin 的触发器:
trigger:
branches:
include:
- staging
- production
paths:
include:
- admin/*
resources:
- repo: self
正如您马上看到的那样,我遇到的问题是,当我提交到 staging 时,它会触发两个管道。
所以我的问题是:有没有办法让这个微服务的staging 和production 都有一个yaml,还是我需要有两个单独的yaml 文件?
编辑:
鉴于这两件事,我认为除非我将adminStaging.yaml 和adminProduction.yaml 分开,否则我想做的事情不太可能:
您不能在触发器中使用变量,因为变量是在运行时评估的(在触发器触发之后)。
如果您使用模板来创作 YAML 文件,那么您只能在管道的主 YAML 文件中指定触发器。您不能在模板文件中指定触发器。
【问题讨论】:
-
Branch-per-environment 是一种过时的模式,不适用于 Git 或关于如何实施持续交付的现代思维。我建议重新审视你的分支策略并采用 GitFlow 或 GitHubFlow 之类的东西。
-
@DanielMann 感谢您的建议。现在阅读它。
-
另外,在没有看到管道的其余部分的情况下,我不相信您构建/部署生产环境的原因是因为您的
trigger声明。按照编码,您的示例说,在其中任何一个分支上的提交都会触发管道,而不是它会触发两个环境。
标签: azure azure-devops azure-pipelines azure-devops-pipelines