2015-12-03 3 views
3

J'essaye de mettre en place une série d'emplois dans Jenkins pour construire et déployer une application en utilisant le plugin Promoting. Nous utilisons actuellement Git comme SCM et nous utilisons le Git Branchez pour aider avec les builds. Cette construction particulière est une construction Maven. Les étapes que j'essaie de mettre en œuvre sont les suivantes:Jenkins utilisant Git Plugin ne remplit pas GIT_COMMIT pour promouvoir la construction

  • Un travail de compilation qui compile, exécute un test unitaire et crée des artefacts. Ce travail se déclenche lors de la validation du code.
  • Le travail de build a un point de promotion manuel pour déployer ce code dans notre environnement de test. Le point de promotion dispose d'un paramètre d'approbation permettant de passer l'environnement à utiliser pour le déploiement .
  • Le point de promotion déclenche un emploi, nous allons l'appeler le travail d'intégration , qui ne se déclenche que plusieurs travaux de déploiement, certains ces travaux de déploiement ont besoin pour obtenir de Git le même code qui a été utilisé pour la construction des objets. Comme le code peut avoir changé de au moment où cette version a été construite au moment où nous voulons pour faire le déploiement, j'essaie d'utiliser la variable GIT_COMMIT environnement pour propager le numéro de validation utilisé pour construire les artefacts.
  • Dans le travail d'intégration, dans l'étape de génération qui déclenche le travail de déploiement spécifique, je n'ajoute aucun paramètre du tout, pas le Git, pas les "version en cours".

Le problème est que le travail de déploiement n'obtient jamais la valeur GIT_COMMIT. Donc, il échoue toujours en essayant de récupérer le code de Git.

  • Sur le chantier de construction, dans le processus de promotion, outre le paramètre d'approbation pour sélectionner l'environnement, dans l'action de déclenchement du travail d'intégration, j'ai ajouté les « paramètres de construction actuels » et « Pass-through git commit qui était construit "paramètres.
  • Dans le travail de construction, après qu'il s'exécute, je peux voir les variables d'environnement pour le travail et la variable GIT_COMMIT a la valeur correcte pour la validation.
  • Dans le travail d'intégration, je ne vois pas GIT_COMMIT dans la liste des variables d'environnement.
  • Dans le travail de déploiement, je ne vois pas GIT_COMMIT dans la liste des variables d'environnement.

Jusqu'à présent, j'ai essayé:

  • Ajouter « Paramètres de construction actuels » et « Pass-through git commit qui a été construit » à la gâchette pour le travail de déploiement
  • Ajout d'une autre variable dans la construire l'emploi et lui attribuer la GIT_COMMIT $ en tant que valeur
  • Ajout d'une autre variable en tant que paramètre d'approbation pour la promotion et donner $ valeur GIT_COMMIT
  • Ajout d'une autre variable dans le déclencheur pour le travail d'intégration et de lui donner $ GIT_COMMIT valeur
  • Ajout d'un paramètre au travail de déploiement et par défaut à $ GIT_COMMIT, mais remplacement de ce paramètre par la valeur du déclencheur.

Jusqu'ici, pas de chance.

Je dois ajouter que tous les autres paramètres et variables se propagent correctement, l'environnement Deployment un, j'en ai un pour le versioning, BUILD_NUMBER, etc. tout se propage bien, sauf pour GIT_COMMIT.

J'ai également une configuration similaire pour une autre application, il s'agit d'une application Grails, et le GIT_COMMIT se propage parfaitement bien ici.

Ce sont les versions que je utilise:

  • Jenkins 1,632
  • Git Plugin 2.4.0
  • Promu Builds (Simple) 1.9
  • promu builds plug-in 2.24
  • Java Open JDK 1.7.0_75

Toutes les idées sont plus que bienvenues . Je vous remercie.

Répondre

4

J'ai été en mesure d'obtenir une solution de contournement, mais je n'ai pas trouvé de solution au problème d'origine. Le problème d'origine est que GIT_COMMIT n'est pas propagé au travail de déploiement et que je n'ai pas pu effectuer ce travail. Au lieu de faire fonctionner mon processus, j'ai fait ce qui suit:

Lors du processus de promotion, lors du lancement du travail d'intégration, j'ai ajouté "Paramètres prédéfinis" avec la valeur: BUILD_COMMIT = $ {GIT_COMMIT}.

Lors du travail d'intégration, lors du déclenchement du travail de déploiement, j'ajoute un paramètre "Current build parameters".

Dans le travail de déploiement, dans la configuration git, dans le champ "Branches à construire", j'utilise $ {BUILD_COMMIT}.

Ceci déclenche tout correctement et le travail de déploiement obtient le bon numéro de validation lors du déploiement.

J'espère que cela aide.