禁止 Jenkins 基于特定 Perforce 用户的提交构建
Disallow Jenkins build on submits from a specific Perforce user
我已经编写了一个脚本,可以自动更新我们正在处理的库的版本文件。目前,我们正在使用 P4 Plugin.
当 Jenkins 接收到目录更改(使用轮询)时,将触发构建。作为该构建的一部分,Jenkins 使用 Perforce 命令行客户端,使用脚本检查和更新版本文件以匹配 Perforce 提交编号。
一切正常,问题是,当版本文件更新时,下次轮询发生时,它会触发构建,因为版本文件已更改。这导致无限循环触发构建以更新版本文件。
我的问题是,如果更改来自某个 Perforce 用户,是否有办法告诉 Jenkins 不要构建?我发现 Git plugin 似乎有关于 who/what 可以触发构建的非常灵活的规则,我想知道是否有一种方法可以在 Jenkins 中执行此操作而不依赖外部插件或非-git 插件,因为我正在使用 Perforce。
或者甚至可以告诉 Jenkins 在仅更改某些文件时不要触发构建也可以。
有人对我如何解决这个问题有任何想法吗?
编辑:
每次有人向项目的主代码线提交时,版本都会更改。这样做是为了让我们可以跟踪内部库版本并使其与生成它的 Perforce 提交保持同步。这样我们就有了一种方法来跟踪哪个 Perforce 提交进行了更新,它也可以在 Jira 中进行跟踪。
现在,脚本只是一个愚蠢的 c# 命令行 exe。我希望避免必须将它连接到 P4API.NET 并自己编写所有逻辑。
使用 "Exclude changes from user"
的轮询构建过滤器
我已经编写了一个脚本,可以自动更新我们正在处理的库的版本文件。目前,我们正在使用 P4 Plugin.
当 Jenkins 接收到目录更改(使用轮询)时,将触发构建。作为该构建的一部分,Jenkins 使用 Perforce 命令行客户端,使用脚本检查和更新版本文件以匹配 Perforce 提交编号。
一切正常,问题是,当版本文件更新时,下次轮询发生时,它会触发构建,因为版本文件已更改。这导致无限循环触发构建以更新版本文件。
我的问题是,如果更改来自某个 Perforce 用户,是否有办法告诉 Jenkins 不要构建?我发现 Git plugin 似乎有关于 who/what 可以触发构建的非常灵活的规则,我想知道是否有一种方法可以在 Jenkins 中执行此操作而不依赖外部插件或非-git 插件,因为我正在使用 Perforce。
或者甚至可以告诉 Jenkins 在仅更改某些文件时不要触发构建也可以。
有人对我如何解决这个问题有任何想法吗?
编辑: 每次有人向项目的主代码线提交时,版本都会更改。这样做是为了让我们可以跟踪内部库版本并使其与生成它的 Perforce 提交保持同步。这样我们就有了一种方法来跟踪哪个 Perforce 提交进行了更新,它也可以在 Jira 中进行跟踪。
现在,脚本只是一个愚蠢的 c# 命令行 exe。我希望避免必须将它连接到 P4API.NET 并自己编写所有逻辑。
使用 "Exclude changes from user"
的轮询构建过滤器