Jenkins: SCM déclenche des constructions constantes malgré aucun changement
nous avons un problème où malgré aucun changement de code SCM déclenche une construction. SCM recherche les modifications toutes les 15 minutes et ne devrait déclencher une compilation que si des modifications sont trouvées.
voici quelques exemples de journal de vote SCM consécutif.
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
Comme vous pouvez le voir, la révision est la même et correspond à celle de
Git Build Data
Revision: 08f48cc5675ae0126256cf24d6ee74c8fc9d7b30 origin/develop
Ces emplois se sont comportés comme prévu jusqu'à il y a quelques jours. Il n'y a rien que nous sachions qui ait changé dans notre environnement pour la cause de cela.
j'ai mis à jour vers la dernière version de Jenkins (1.539) et installé des plug-ins hier soir dans un effort pour résoudre cela, mais le comportement continue.
5 réponses
je viens de tomber sur Jenkins qui construit continuellement à cause d'un changement SCM, même quand il n'y avait pas de changement, et le sondage n'a même pas été activé. C'est peut-être différent de votre scénario, mais je me suis dit que ça pourrait aider de partager ma solution.
Out le projet est configuré pour construire en utilisant le spécificateur de branche */integration
comme toutes nos autres constructions d'intégration. Cependant, après avoir regardé toutes les branches sur notre git repo origine, j'ai vu qu'Il ya deux branches qui correspondent à la */integration
spécificateur. On dirait qu'un développeur a dû pousser à tort vers une nouvelle branche avec un nom très similaire:
$git branch --remote | grep integration
origin/integration
origin/origin/integration
la solution qui a corrigé ce problème pour moi était de spécifier complètement la branche, en utilisant refs/heads/integration
. Je suppose que cela fonctionnerait aussi simplement pour supprimer la branche fautive dupliquée, mais en spécifiant la branche exactement je peux éviter de tomber dans le même problème à l'avenir.
Je ne suis pas sûr que ce soit la même cause pour votre problème mais c'est ce que a fonctionné pour moi, et j'espère travailler pour quelqu'un d'autre dans cette situation.
Semble être reproductible avec la dernière Jenkins Git plugin la version 2.0.
déclassement vers la version 1.x peut résoudre le problème. Bien que vous devriez également revenir à la configuration de Jenkins à partir d'une sauvegarde plus ancienne en tant que plugin GIT version 1.x semble ne pas fonctionner avec le nouveau schéma de configuration 2.0.
Ce fil suggère d'activer "fast remote polling" comme solution de contournement. Dans la version 2.0, Il est appelé "sondage de Force en utilisant l'espace de travail" I penser.
Référence à Jenkins question: https://issues.jenkins-ci.org/browse/JENKINS-20767
j'ai rencontré le même problème.
ce qui l'a corrigé pour moi, c'est que le journal de vote de Git ressemblait à ceci:
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
Notez que la ligne master
ne pas dire " déjà construit. J'ai construit le master
branche et cela a réglé le problème.
soyez prudent avec les redirections svn, dans mon cas J'ai eu le même cas Jenkins ne pouvait pas détecter si svn n'a pas de changements et allways était en train de déclencher.
le problème était que dans ma configuration SVN de jenkins il y avait cette url:
https://xxxx.yyy.es:443/svn/myproject/trunk et sa redirection
http://xxxx.yyy.es:8008/svn/myproject/trunk (je ne sais pas pourquoi)
Jenkins a dû être configuré avec la dernière URL en ordre pour détecter les changements svn correctement.
C'est mon problème résolu.
http://antuansoft.blogspot.com.es/2014/10/jenkins-pool-smc-always-detect-changes.html
je faisais l'expérience de ce même problème aujourd'hui. Il a commencé à se produire lorsque j'ai ajouté la tâche" Supprimer l'espace de travail lorsque la compilation est terminée " publier. J'ai retiré cette tâche et cela a semblé résoudre le problème.