Jenkinsfile journal de l'
Est-il intégré la variable qui donne accès au texte de l'en cours d'exécution construire?
J'ai essayé d'utiliser quelque chose comme currentBuild.log
, currentBuild.buildLog
mais sans succès.
Vous devez vous connecter pour publier un commentaire.
En fait, il est possible à l'aide de
currentBuild.rawBuild.log
ou mieux (non dépréciés)currentBuild.rawBuild.getLog(100)
(pour les 100 dernières lignes), référence: http://javadoc.jenkins-ci.org/hudson/model/Run.html#getLog-int-org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method hudson.model.Run getLog int
& la de mes.jenkins.site/scriptApproval/ page n'a même pas le montrer. Je suis toujours à la recherche d'une réponse moi-même à ce problème épineuxJ'ai beaucoup cherché pour trouver une solution à analyser le journal.
rawBuild
n'était pas OK, parce que je veux exécuter mes scripts dans un bac à sable sans des approbations supplémentairestee
dans les étapes, que je veux analyser n'était pas OK, car je ne veux pas modifier les étapes précédentes, ni je ne veux pas avoir tout mon journal dans la RAM (et malheureusement, j'ai besoin que sur une machine Windows)J'ai trouvé une solution inspirée par Jesse Glicks réponse:
manager
-variable vous permet d'analyser le journal à l'aide demanager.logContains(regexp)
oumanager.getLogMatcher(regexp)
myTestString
vous pouvez les appelermanager.logContains('.*myTestString.*')
manager.getLogMatcher(regexp)
Malheureusement je n'ai trouvé aucun moyen d'analyser l'ensemble du journal (
getLogMatcher
retourne uniquement la première ligne de Matcher). Donc je ne vois actuellement aucun moyen, par exemple de compter combien de fois un fichier journal contient une chaîne de caractères spéciaux.Pas actuellement. (Propriétés de
currentBuild
sont documentées sous Extrait de » générateurs de Variables Globales par le chemin.)Il pourrait être mis en œuvre, assez facilement, bien qu'il ne serait pas à l'échelle, avec d'énormes constructions. JENKINS-28119 serait de fournir une solution plus évolutive à ce que je devine votre demande sous-jacente est.
mvn clean deploy
) et dans le cas où le serveur de tests échoue, je veux supprimer les artefacts de la nexus référentiel, le moyen le plus facile actuellement pour moi est d'analyser les logs pour Téléchargé: http..... texte et faire HTTP SUPPRIMER sur eux.sh 'mvn clean deploy | tee logs'; def logs = readFile 'logs'
sans essayer d'accéder à l'historique de la construction dans son ensemble.