El activador de Gerrit para Jenkins no pudo encontrar ninguna revisión para build

Tengo problemas para usar Jenkins + Gerrit.

Esto es lo que obtuve hasta ahora:

  • La configuration de Gerrit Trigger en Jenkins parece estar bien: cuando presiono un nuevo set de cambios, se lanza la compilation de Jenkins.

  • Utilicé esto: Jenkins: configuration para los problemas de Gerrit Trigger para poder lanzarlo también "manualmente".

  • En cuanto a mi configuration, tengo algo como esto: http://sofes.miximages.com/a/18347982/2248987 . Branch Specifier es $ GERRIT_BRANCH y Ref Spec es $ GERRIT_REFSPEC

  • Gerrit y Git están trabajando multas por su count. El acceso también parece estar bien.

Aquí está mi problema. Al build (gerrit activado o manualmente), la salida de logging es:

> 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 cnetworkingentials > 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 

Estoy atascado con este post, intenté con el repository vacío, los no vacíos y también con o sin changeset "en revisión"

Solía ​​tener este problema y creo que ahora lo solucioné, culpo a la interfaz de usuario de Jenkins por ocultar algunos elementos esenciales de configuration;)

Aquí está el resultado de mi compilation de Jenkins antes de la corrección:

 Triggenetworking 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 

SOLUCIÓN

Deberá abrir su configuration de compilation y acceder a la sección 'Administración de código fuente' como se muestra a continuación:

Git config con el botón Avanzado

Ahora notará que hay un button 'Avanzado', click él para revelar los campos adicionales de la siguiente manera:

Configuración de Git con campo refspec revelado

Ahora puede escribir su refspec aquí: $ GERRIT_REFSPEC

Ahora bien, vuelva a disparar una compilation fallida o abandone las revisiones y envíe una nueva y debería estar funcionando.

Aquí está el resultado del trabajo de Jenkins ahora que tenemos el refspec apropiado:

 Retriggenetworking 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 
  1. Deje en blanco el campo 'Sucursales para build> especificador de sucursal'
  2. Haga clic en el button Avanzado y establezca un refspec personalizado: + refs / heads / feature / my-feature: refs / remotes / origin / feature / my-feature Con estas configuraciones, el plugin realizará correctamente una búsqueda y luego echa un vistazo solo al twig 'feature / my-feature'.

Reemplazar $GERRIT_BRANCH con $GERRIT_REFSPEC

Podrías tratar de configurar así

  • Refspec = refs / changes /: refs / changes /
  • Sucursales para build = $ GERRIT_REFSPEC

Sigue la configuration completa allí

Si hace clic en " Crear ahora ", Jenkins no podrá get las fonts, ya que $ GERRIT_REFSPEC no existe en ese caso.

Después de mucha lucha y mantener el ojo en el logging, finalmente obtuve la solución.

Es solo error de configuration que todos hicimos. Una vez marcada la checkbox Este proyecto está parametrizado Debajo de la configuration debe hacerse

enter image description here

Aquí nombré el nombre del parámetro como branchgit Ahora, en Source Code Management, necesitamos concentrarnos en Branches para comstackr, cuyo valor debe ser solo "$ branchgit", como se muestra en la image de abajo enter image description here