我有一个使用Azure DevOps管道的.Net项目。设置是我有一个创建工件的构建管道。工件然后通过发布管道自动发布。这工作得很完美。
问题是在我打开构建验证策略后,拉取请求现在触发构建管道,然后触发发布管道。所以每个拉取请求都被发布。构建步骤是正确的,但发布不应该发生。预部署触发器“拉取请求部署”被禁用。
为了解决这个问题,我在创建工件的构建步骤中添加了一个条件。因此,拉取请求不创建工件,而合并创建工件。这也是按预期工作的。然而,发布管道仍然被触发,但这次没有工件(这使管道失败)。
顶级域名:
在拉请求时释放管道触发器,此行为的设置已关闭。WTD?
我的CI/CD设置:
2条答案
按热度按时间5m1hhzi41#
您的发布触发了您的任何构建和分支(PR也有分支)。您必须添加分支过滤器:连续部署触发器。使用master分支或任何其他分支限制筛选器。此外,您可以定义2个生成定义:
1.验证拉式请求而不链接发布的管道。
1.触发释放的CI管道。
另外,我认为这是一个bug。因为PR触发器没有启用。让我们看看开发者社区的评论:https://developercommunity.visualstudio.com/content/problem/1292039/release-pipelines-ignore-pull-request-settings.html
rdlzhqv92#
这里我们已经建立了与存储库中存储的YAML文件以及源代码绑定的构建管道,并且发布管道也为每个构建管道设置了源代码。
这是主构建的一部分:
这是拉式请求构建的一部分:
我们为每个源构建都有发布管道,只在其中一个中启用了Pull Request触发器,但是您的主工件只能有一个,所以PR不会被发布。