我们遇到一个问题,尽管没有代码更改,但SCM正在触发构建。 SCM每15分钟轮询一次更改,并且只有在找到更改时才会触发构建。
以下是连续SCM轮询日志的几个示例。
Started on Nov 15, 2013 11:47:14 AM
Using strategy: Default
[poll] Last Built Revision: Revision 08f48cc5675ae0126256cf24d6ee74c8fc9d7b30 (origin/develop)
Done. Took 0.23 sec
Changes found
Started on Nov 15, 2013 11:17:14 AM
Using strategy: Default
[poll] Last Built Revision: Revision 08f48cc5675ae0126256cf24d6ee74c8fc9d7b30 (origin/develop)
Done. Took 0.22 sec
Changes found
Started on Nov 15, 2013 11:02:14 AM
Using strategy: Default
[poll] Last Built Revision: Revision 08f48cc5675ae0126256cf24d6ee74c8fc9d7b30 (origin/develop)
Done. Took 0.2 sec
Changes found
正如您所看到的那样,修订版本与
的版本相同Git Build Data
Revision: 08f48cc5675ae0126256cf24d6ee74c8fc9d7b30 origin/develop
这些工作在几天前表现得如预期。我们所知道的任何事情都没有改变我们的环境造成这种情况。
我升级到最新版本的Jenkins(1.539),并在昨晚安装了插件,以解决此问题,但行为仍在继续。
答案 0 :(得分:13)
由于SCM的变化,我刚刚遇到Jenkins,即使没有变化,也没有打开轮询。这可能与您的方案不同,但我认为它可能仍然有助于分享我的解决方案。
将Out项目配置为使用分支说明符*/integration
进行构建,就像我们所有其他集成构建一样。但是,在查看了我们的原始git repo上的所有分支之后,我看到有两个分支与*/integration
说明符匹配。看起来开发人员必须错误地推送到一个名称非常相似的新分支:
$git branch --remote | grep integration
origin/integration
origin/origin/integration
为我解决此问题的解决方案是使用refs/heads/integration
完全指定分支。我认为它也可以简单地删除重复的违规分支,但通过准确指定分支,我可以避免将来遇到同样的问题。
我不确定这是否与您的问题原因相同,但这对我有用,并希望在这种情况下能为其他人工作。
答案 1 :(得分:6)
似乎可以使用最新的Jenkins GIT plugin版本2.0重现。
降级到版本1.x可能会解决问题。虽然你也应该从旧备份中恢复Jenkins配置,因为GIT插件版本1.x似乎不能使用新的2.0配置方案。
This thread建议启用“快速远程轮询”作为解决方法。在2.0版中,我认为它是“使用工作空间强制轮询”。
引用Jenkins问题:https://issues.jenkins-ci.org/browse/JENKINS-20767
答案 2 :(得分:2)
我遇到了同样的问题。
为我修复的是注意到Git Polling Log看起来像这样:
Started on [date]
Using strategy: Default
[poll] Last Built Revision: Revision [commit#] (origin/develop)
[...]
Found 12 remote heads on ssh://[...]/repo.git
[poll] Latest remote head revision on refs/heads/feature/foo is: [commit#] - already built by 1414
[poll] Latest remote head revision on refs/heads/feature/bar is: [commit#] - already built by 2365
[poll] Latest remote head revision on refs/heads/feature/baz is: [commit#] - already built by 1489
[poll] Latest remote head revision on refs/heads/feature/qux is: [commit#] - already built by 1413
[poll] Latest remote head revision on refs/heads/develop is: [commit#] - already built by 2368
[poll] Latest remote head revision on refs/heads/master is: [commit#]
Done. Took 0.16 sec
Changes found
请注意,master
的行不会说已经构建了#39;。我构建了master
分支并修复了问题。
答案 3 :(得分:0)
小心svn重定向,在我的情况下我有同样的情况Jenkins无法检测svn是否没有变化,并且总是触发。
问题在于我的jenkins svn配置中有这个url:
https://xxxx.yyy.es:443/svn/myproject/trunk及其重定向到
http://xxxx.yyy.es:8008/svn/myproject/trunk(我不知道为什么)
Jenkins必须配置最后一个URL才能正确检测svn更改。
这是我的问题已解决。
http://antuansoft.blogspot.com.es/2014/10/jenkins-pool-smc-always-detect-changes.html
答案 4 :(得分:0)
我今天遇到了同样的问题。当我在构建完成时添加"删除工作区时,它开始发生了#34;发布任务。我删除了该任务,似乎解决了这个问题。
答案 5 :(得分:0)
删除管道末端的清理步骤对我来说很有效:
cleanup {
cleanWs()
}