Exécuter le script shell après la post-construction dans Jenkins

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

Très facile à faire avec le plug-in de tâche de post-construction .

Jenkins - Option

Vous pouvez également exécuter des commandes arbitraires en utilisant Groovy Post Build – et cela vous donnera beaucoup de contrôle sur leur exécution, etc. Nous l’utilisons pour exécuter un script shell “finger of blame” dans le cas de builds échoués ou instables.

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 des parameters pour qu’elle puisse étudier qui a pu endommager la construction, mais vous pouvez exécuter les commandes de votre choix de la même manière)

Si je lis bien votre question, vous souhaitez exécuter un script dans la partie des actions de post-construction de la génération.

J’ai moi-même utilisé PostBuildScript Plugin pour exécuter git clean -fxd après que la compilation ait archivé des artefacts et des résultats de test publiés. Mes esclaves Jenkins ont des disques SSD, donc la salle ne conserve pas les fichiers générés dans l’espace de travail.

Vous devriez pouvoir le faire avec le plug-in Batch Task .

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

Une alternative peut également être un plug-in de tâche de post-construction .

Vous devez configurer le script shell post-build en tant que travail Jenkins distinct et le déclencher en tant que post-build. Il semblerait que vous ayez besoin d’utiliser le plug-in de déclenchement paramétré car l’option standard “Build other projects” ne fonctionne que si votre génération de déclencheurs est réussie.