git - Azure DevOps 构建管道无法使用标记和路径筛选器构建
问题描述
所以我有一个奇怪的事件在它应该发生的时候没有触发。我有一个主分支和一个 Azure DevOps 构建管道。分支过滤器设置为 all as *
。它建立。我添加了一个带有“/src/SomeFolder1”的路径过滤器,它使用仅签入该文件夹的代码构建。完美的。
现在,我添加了另一个带有“refs/tags/v*”的分支过滤器,就像我一直对其他项目的其他构建定义所做的那样,没有路径过滤器并且一直有效。
在与构建管道关联的 git 存储库中,我创建了一个 git 标记为“v1.0.0”,但没有任何反应。没有触发自动构建。我查看了 Microsoft 文档(https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops&tabs=yaml#tags),我认为我符合要求。我错过了什么吗?
我的最终 CI 触发器是:
Branch filter:
1) '*'
2) 'refs/tags/v*'
Path filter:
1) '/src/SomeFolder1'
当我删除路径过滤器时,触发器可以完美地工作文件。它可以工作/或工作,但不能同时工作。
解决方案
根据我们在评论中的讨论和我的测试,问题是路径过滤器。应用规则时,路径过滤器似乎具有优先权。如果不更改实际内容,则永远不会评估分支或标签过滤器。使用标签,不会更改实际内容,这解释了构建未触发的原因。我通过将路径过滤器从包含翻转到排除来验证了这一点。只要您设置了路径过滤器,它就会寻找内容更改。
我的建议是为您描述的场景创建一个功能请求或设置一个单独的构建(我知道,不理想)。
推荐阅读
- maven - 有没有办法将相同的 JavaFX 应用程序构建为具有不同构建类型的 .exe?
- json - 使用 bash 脚本从 json 计算累积时间
- c# - 这个功能不是生产质量,我怎样才能使它更健壮?
- java - 从java中的jsp请求参数而不使用servlet
- python - 如何在cython中的nogil循环下将numpy.ndarray分配给临时变量?
- excel - 如何在 VBA 中的函数中返回数组 - Excel
- powershell - 触发 Jenkins 作业的 PowerShell 命令引发身份验证错误
- postgresql - Postgres - 从数组到多行
- ffmpeg - 使用硬件加速压缩视频时是否可以使 ffmpeg 更快?英特尔 GPU
- reactjs - 样式 css 模块未应用 [React + Webpack]