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.
Réponses
Trop de publicités?Très facile à réaliser avec Tâche postérieure à la construction plugin.
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).
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.
Vous devriez pouvoir le faire à l'aide de la fonction Plugin Batch Task .
- Créez une tâche de traitement par lots dans le projet.
- 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.
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.