【问题标题】:Disallow Jenkins build on submits from a specific Perforce user禁止 Jenkins 基于来自特定 Perforce 用户的提交进行构建
【发布时间】:2017-02-15 21:45:31
【问题描述】:

我编写了一个脚本,它将自动更新我们正在开发的库的版本文件。目前,我们使用的是P4 Plugin

当 Jenkins 发现目录的更改(使用轮询)时,会触发构建。作为该构建的一部分,Jenkins 使用 Perforce 命令行客户端检查并使用脚本更新版本文件以匹配 Perforce 提交编号。

这一切都很好,问题是,当版本文件更新时,下一次轮询发生时,由于版本文件更改,它会触发构建。这导致触发构建以更新版本文件的无限循环。

我的问题是,如果更改来自某个 Perforce 用户,有没有办法告诉 Jenkins 不要构建?我发现Git plugin 似乎对谁/什么可以触发构建有非常灵活的规则,我想知道在 Jenkins 中是否有一种方法可以在不依赖外部插件或非 git 插件的情况下做到这一点,因为我正在使用 Perforce。

或者,如果只有某些文件发生了变化,甚至可以告诉 Jenkins 不要触发构建也可以工作。

有人对我如何解决这个问题有任何想法吗?

编辑: 每次有人向项目的主代码行提交时,版本都会发生变化。这样做是为了让我们可以跟踪一个内部库版本,并使其与制作它的 Perforce 提交保持同步。这样我们就可以跟踪哪个 Perforce 提交进行了更新,并且也可以在 Jira 中进行跟踪。

现在,该脚本只是一个愚蠢的 c# 命令行 exe。我希望避免将其连接到 P4API.NET 并自己编写所有这些逻辑。

【问题讨论】:

  • 更新版本文件的脚本是构建的一部分吗?为什么?版本多久更改一次?如果没有任何变化,您可以将脚本更改为不接触版本文件吗?
  • 更新了我的问题
  • 您是否尝试过“排除用户更改”的轮询构建过滤器?
  • @tkosinski 你在哪里看到这个选项?我在 P4 插件中没有看到该选项
  • @tkosinski 哇,我不知道我以前是怎么错过这个选项的。我想我是想通过轮询来避免这样做,而我直接忽略了它。如果您想将其添加为答案,我可以接受。谢谢!

标签: jenkins continuous-integration perforce build-automation


【解决方案1】:

使用“排除用户更改”的轮询构建过滤器

【讨论】:

    猜你喜欢
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 2016-02-06
    • 2014-02-02
    相关资源
    最近更新 更多