2012-04-08 5 views
2

Nous terminons la mise en place de notre nouveau système de CI, y compris git, Gerrit et jenkins pour les examens de dépistage et le code automatisé, et nous constatons une situation étrange:multiples jenkins/projets Gerrit

Nous avons trois différents projets gerrit, chacun d'eux avec son propre travail Jenkins. Nous avons utilisé le guide this comme référence de configuration, et tout est installé et semble fonctionner correctement.

Notre premier projet a été configuré et testé avec un patch de changement d'échantillon. Jenkins a été déclenché correctement, a passé le test et a voté "Vérifié" à la construction comme prévu. Jusqu'ici tout va bien!

Mais: Lorsque nous avons essayé d'installer un second projet, nous avons constaté qu'un patch de modification dans l'un des déclencheurs de projets a été modifié dans chaque job jenkins. Par exemple:

Disons que nous avons GerritProjectA, et GerritProjectB, chacun avec un JenkinsProjectA et un JenkinsProjectB. Lorsqu'une modification est soumise à GerritProjectA, JenkinsProjectA et JenkinsProjectB sont déclenchés. En outre, quelque chose se mélange dans le vote Gerrit après la construction: Voici l'info dans sshd_log après un des builds (un dans JenkinsProjectB):

gerrit approve 10,3 --message '\''Build Failed 
    http://jenkins-server:8080/job/projectA/6/ : FAILURE 

    http://jenkins-server:8080/job/projectB/59/ : Correcto'\!''\'' -- 
     verified -2 --code-review 0' 14ms 6ms 1 

Comme vous pouvez le voir, la commande approuver Gerrit est mélangé avec des informations pour deux emplois différents ... jenkins

exemple de configuration pour tout travail de jenkins:

Repository URL: ssh://[email protected]:29418/projectA.git 
Banches to build: $GERRIT_PATCHSET_REVISION 
Build triggered by Gerrit event: 
Project Type: Plain 
Branches: Path ** 

versions du logiciel:

Jenkins: 1.458 
Gerrit plugin: 2.5.1 
Gerrit: 2-3 rc0 

Des idées? Merci d'avance!

Domingo

Répondre

1

trouvé le problème:

L'un des emplois Jenkins (appelons-le JenkinsJobB), dans la partie « Gerrit Trigger » de la configuration n'a pas le nom du dépôt git dans le motif.

Si vous avez plusieurs emplois pour les projets de jenkins Gerrit, vous devez configurer le déclencheur Gerrit comme celui-ci (au moins dans mon cas):

Type: Plain 
Pattern: (repository name) 

Branches 
Type: Path 
Pattern: ** (or the branch name if you just want to watch one).