84 votes

Exécuter le Shell script après le post build dans Jenkins

J'essaie d'exécuter un script shell script si la construction réussit ou échoue après la post-construction dans Jenkins. Je ne vois pas cette option dans post-build pour exécuter un shell script sauf pour exécuter une cible.

69voto

Daniel Magnusson Points 2945

Très facile à réaliser avec Tâche postérieure à la construction plugin.

Jenkins - "Post build task" option

10voto

crovers Points 81

Vous pouvez également exécuter des commandes arbitraires à l'aide de la commande Groovy Post Build - et cela vous donnera un grand contrôle sur le moment où ils s'exécutent et ainsi de suite. Nous l'utilisons pour lancer un shell script "finger of blame" en cas d'échec ou d'instabilité de la construction.

if (manager.build.result.isWorseThan(hudson.model.Result.SUCCESS)) {
  item = hudson.model.Hudson.instance.getItem("PROJECTNAMEHERE")
  lastStableBuild = item.getLastStableBuild()
  lastStableDate = lastStableBuild.getTime()
  formattedLastStableDate = lastStableDate.format("MM/dd/yyyy h:mm:ss a")
  now = new Date()
  formattedNow = now.format("MM/dd/yyyy h:mm:ss a")
  command = ['/appframe/jenkins/appframework/fob.ksh', "${formattedLastStableDate}", "${formattedNow}"]
  manager.listener.logger.println "FOB Command: ${command}"
  manager.listener.logger.println command.execute().text
}

(Notre commande prend la dernière date de construction stable et l'heure actuelle comme paramètres afin de pouvoir rechercher qui a pu casser la construction, mais vous pouvez lancer n'importe quelle commande de la même manière).

6voto

sti Points 4338

Si je comprends bien votre question, vous voulez exécuter un script dans la partie des actions post-construction de la construction.

J'utilise moi-même Plugin PostBuildScript pour la course à pied git clean -fxd après l'archivage des artefacts et la publication des résultats des tests. Mes esclaves Jenkins ont des disques SSD, je n'ai donc pas la place de conserver les fichiers générés dans l'espace de travail.

3voto

Carlo Bonamico Points 78

Vous devriez pouvoir le faire à l'aide de la fonction Plugin Batch Task .

  1. Créez une tâche de traitement par lots dans le projet.
  2. Ajouter une option de post-construction "Invoke batch tasks" en sélectionnant le même projet.

Une alternative peut également être Tâche postérieure à la construction plugin.

2voto

gareth_bowles Points 10605

Vous devez configurer le shell post-construction script comme une tâche Jenkins distincte et le déclencher en tant qu'étape post-construction. Il semblerait que vous deviez utiliser l'option Plugin de déclenchement paramétré car l'option standard "Construire d'autres projets" ne fonctionne que si la construction qui la déclenche est réussie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X