Exécuter le script Shell après la construction post dans Jenkins
J'essaie d'exécuter un script shell si la construction passe ou échoue après la post-construction dans Jenkins. Je ne peux pas voir cette option dans Post build pour exécuter un script shell sauf pour exécuter une cible.
5 réponses
Très facile à faire avec Post-construction tâche plugin.
Vous pouvez également exécuter des commandes arbitraires en utilisant le Groovy Post Build - et cela vous donnera beaucoup de contrôle sur quand ils s'exécutent et ainsi de suite. Nous l'utilisons pour exécuter un script shell' finger of blame ' en 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 paramètres afin qu'elle puisse enquêter sur qui aurait pu casser la construction, mais vous pouvez exécuter toutes les commandes que vous aimez de la même manière)
Si je lis bien votre question, vous voulez exécuter un script dans la partie post build actions de la construction.
J'utilise moi-même Postbuildscript Plugin pour exécuter git clean -fxd
après que la construction a archivé les artefacts et publié les résultats des tests. Mes esclaves Jenkins ont des disques SSD, donc je n'ai pas la salle de garder les fichiers générés dans l'espace de travail.
Vous devriez être capable de le faire avec le plugin de tâche par lots .
- crée une tâche par lots dans le projet.
- Ajoutez une option de post-construction" Invoke batch tasks " en sélectionnant le même projet.
Une alternative peut également être Post-construction tâche plugin.
Vous devrez configurer le script shell post-build en tant que travail Jenkins séparé et le déclencher en tant qu'étape post-build. Il semble que vous devrez utiliser le Plugin Trigger paramétré comme l'option standard "construire d'autres projets" ne fonctionne que si votre génération de déclenchement est réussie.