Azure DevOps Pull-Request:现有 Pull-Request 触发重建中的额外提交,忽略构建策略中的路径过滤器

Azure DevOps Pull-Request: Additional commits in a existing Pull-Request trigger rebuilds, ignoring the Path filter in the Build Policy

如果代码库的一部分已更改,我已经为 运行 和 CI 管道创建了一个构建策略。 我想从重新触发构建中排除文件。

在 README.md 文件中创建包含更改的拉取请求时,未触发构建(如预期的那样)。

创建包含其他文件更改的拉取请求时,触发了构建(如预期的那样)

当创建一个在另一个文件中进行更改的拉取请求时,构建被触发,但是当我提交对 README.md 文件的更改时,当前构建失败并开始新的构建。 (不是预期的,我希望路径过滤器阻止重建,因为对于这个构建应该忽略该文件)

构建策略路径过滤器似乎只在创建拉取请求时起作用。

有没有办法在不触发重建的情况下将文件提交到现有的拉取请求?

根据你的描述,我可以重现这种情况。

关于这种情况的解释ticket

Is there a way to commit files to an existing pull-request without triggering a rebuild?

您可以参考上面工单中的解决方法。

另一种解决方法:您可以尝试在 [= 中将 “触发器” 设置为 '手动' 32=].

在这种情况下,您可以在 Pull Request 中手动将构建排队。

当一个新的提交提交到源分支时,当前构建可以继续运行而不会直接失败。

希望对您有所帮助。

我无法通过在新提交上重建来解决问题。

但是,我可以解决我们的特定问题。我们的管道中有一个步骤生成文件并提交它们,这会触发重建。我添加了一个步骤来检查文件是否已添加并跳过再次提交生成的文件。

要检查文件是否已存在于拉取请求中,我使用以下命令:

git diff origin/master -- {filename} --exit-code --shortstat