web-dev-qa-db-fra.com

Le déclencheur Gerrit pour Jenkins n’a pu trouver aucune révision à construire

J'ai du mal à utiliser Jenkins + Gerrit.

Voici ce que j'ai eu jusqu'à présent:

  • La configuration de Gerrit Trigger dans Jenkins semble être correcte: lorsque j'applique un nouveau jeu de modifications, la construction de Jenkins est lancée.

  • J'ai utilisé ceci: Jenkins: paramètres pour les problèmes de Gerrit Trigger Pour pouvoir également le lancer "manuellement".

  • En ce qui concerne ma configuration, j’ai Quelque chose comme ceci: https://stackoverflow.com/a/18347982/2248987 . Le spécificateur de branche est $ GERRIT_BRANCH et la spécification de référence est $ GERRIT_REFSPEC

  • Gerrit et Git travaillent seuls sur des amendes. L'accès semble bien aussi.

Voici mon problème. Lors de la construction (déclenchée par gerrit ou manuellement), la sortie du journal est:

 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.Origin.url ssh://user@Host:29418/testproject # timeout=10
Fetching upstream changes from ssh://user@Host:29418/testproject
 > git --version # timeout=10
using GIT_SSH to set credentials 
 > git -c core.askpass=true fetch --tags --progress ssh://user@Host:29418/testproject refs/heads/master
 > git rev-parse Origin/$GERRIT_BRANCH^{commit} # timeout=10
 > git rev-parse $GERRIT_BRANCH^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Finished: FAILURE

Je suis coincé avec ce message, essayé avec le dépôt vide, les non-vides, et aussi avec ou sans changeset "en revue"

12
MisterPatate

J'avais ce problème et je pense l'avoir corrigé maintenant, je blâme l'interface utilisateur de Jenkins pour avoir masqué certains éléments de configuration essentiels;)

Voici la sortie de ma construction Jenkins avant le correctif:

Triggered by Gerrit: https://bbpcode.epfl.ch/code/15056
[EnvInject] - Loading node environment variables.
Building remotely on rh6.6-02 (AMD64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer AMD64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 AMD64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit
 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.Origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10
Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons +refs/heads/*:refs/remotes/Origin/*
 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job.
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE

SOLUTION

Vous devrez ouvrir votre configuration de construction et aller à la section 'Gestion du code source' comme indiqué ci-dessous:

 Git config with Advanced button

Maintenant, vous remarquerez qu'il y a un bouton 'Avancé', cliquez dessus pour afficher les champs supplémentaires comme ci-dessous:

 Git config with refspec field revealed

Vous pouvez maintenant taper votre refspec ici: $ GERRIT_REFSPEC

Désormais, relancez une génération ayant échoué ou abandonnez les révisions et envoyez-en une nouvelle. Elle devrait fonctionner.

Voici le résultat du travail de Jenkins maintenant que nous avons le refspec approprié:

Retriggered by user kerrien for Gerrit: https://bbpcode.epfl.ch/code/15056
[EnvInject] - Loading node environment variables.
Building remotely on rh6.6-02 (AMD64-RedHatEnterpriseServer 6.6 RedHatEnterpriseServer AMD64-RedHatEnterpriseServer-6.6 rh6.x RedHatEnterpriseServer-6.6 AMD64) in workspace /var/tmp/jenkins/workspace/datamining.nip-commons.gerrit
 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.Origin.url ssh://bbpcode.epfl.ch/datamining/nip-commons # timeout=10
Fetching upstream changes from ssh://bbpcode.epfl.ch/datamining/nip-commons
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git fetch --tags --progress ssh://bbpcode.epfl.ch/datamining/nip-commons refs/changes/56/15056/2
 > /usr/bin/git rev-parse 74e4ff18f54bd6e046f7af016614193f566adfe4^{commit} # timeout=10
Checking out Revision 74e4ff18f54bd6e046f7af016614193f566adfe4 (dev)
 > /usr/bin/git config core.sparsecheckout # timeout=10
 > /usr/bin/git checkout -f 74e4ff18f54bd6e046f7af016614193f566adfe4
 > /usr/bin/git rev-parse FETCH_HEAD^{commit} # timeout=10
 > /usr/bin/git rev-list 2649d51369413cef4dfb7ec50939945005514cfa # timeout=10
Cleaning workspace
 > /usr/bin/git rev-parse --verify HEAD # timeout=10
Resetting working tree
 > /usr/bin/git reset --hard # timeout=10
 > /usr/bin/git clean -fdx # timeout=10
Triggering datamining.nip-commons.gerrit » default
datamining.nip-commons.gerrit » default completed with result SUCCESS
Started calculate disk usage of build
Finished Calculation of disk usage of build in  2 second
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: SUCCESS
11
Samuel Kerrien
  1. Laissez le champ 'Branches à construire> Spécificateur de branche' vide
  2. Cliquez sur le bouton Avancé et définissez une réfspec personnalisée: + refs/têtes/caractéristique/mon-caractéristique: refs/télécommandes/Origine/caractéristique/mon-caractéristique Avec ces paramètres , le plugin effectuera correctement une récupération, puis ne consultera que la branche 'feature/my-feature'.
2
rahul srivastav

Après avoir beaucoup lutté et gardé un œil sur le journal, j'ai finalement trouvé la solution.

C'est une erreur de configuration que nous avons tous faite. Une fois cochée case à cocher Ce projet est paramétré La configuration ci-dessous doit être effectuée

 enter image description here

Ici, j'ai nommé le paramètre name sous la forme branchgit Maintenant, dans la gestion du code source, nous devons nous concentrer sur Les branches pour construire dont la valeur ne devrait être que "$ branchgit" comme indiqué dans l'image ci-dessous  enter image description here

0
Abhishek Mishra

Vous pouvez essayer de configurer comme ça

  • Refspec = refs/changes /: refs/changes /
  • Succursales à construire = $ GERRIT_REFSPEC

Suivez la configuration complète ici

Si vous cliquez sur "Build Now} _", Jenkins ne pourra pas obtenir de sources car $ GERRIT_REFSPEC n'existe pas dans ce cas.

0
Flows

Remplacez $GERRIT_BRANCH par $GERRIT_REFSPEC

0
uncletall