Есть ли встроенная переменная, которая дает доступ к тексту текущей сборки?
Я пытался использовать что-то вроде currentBuild.log
, currentBuild.buildLog
, но безуспешно.
Есть ли встроенная переменная, которая дает доступ к тексту текущей сборки?
Я пытался использовать что-то вроде currentBuild.log
, currentBuild.buildLog
, но безуспешно.
На самом деле можно использовать currentBuild.rawBuild.log
или лучше (не рекомендуется) currentBuild.rawBuild.getLog(100)
(для последних 100 строк), ссылка: 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
и страница my.jenkins.site/scriptApproval/ даже не показывает это. Я все еще ищу ответ на эту неприятную проблему
- person Jason De Arte; 21.09.2016
Я много искал решение для анализа журнала.
rawBuild
было неправильно, потому что я хочу выполнять свои скрипты в песочнице без дополнительных согласованийtee
в шагах, которые я хочу проанализировать, было неправильно, потому что я не хочу изменять предыдущие шаги и не хочу, чтобы весь мой журнал был в ОЗУ (и, к сожалению, мне это нужно на машине с Windows)Я нашел решение, вдохновленное ответом Джесси Гликса:
manager
позволяет вам анализировать журнал с помощью manager.logContains(regexp)
или manager.getLogMatcher(regexp)
.myTestString
, вы можете просто вызвать manager.logContains('.*myTestString.*')
manager.getLogMatcher(regexp)
К сожалению, я не нашел способа проанализировать весь журнал (getLogMatcher
возвращает только первую совпадающую строку Matcher). Поэтому я не вижу в настоящее время способа, например. подсчитайте, как часто файл журнала содержит специальную строку.
Не сейчас. (Кстати, свойства currentBuild
задокументированы в разделе Генератор фрагментов » Глобальные переменные.)
Его можно реализовать довольно легко, хотя он не будет хорошо масштабироваться при больших сборках. JENKINS-28119 обеспечит более масштабируемое решение того, что, как я предполагаю, является вашим базовым запросом. является.
mvn clean deploy
), и в случае сбоя тестов сервера я хочу удалить эти артефакты из репозитория nexus, самый простой способ в настоящее время для меня - проанализировать журналы для загруженных : http..... text и выполните для них HTTP DELETE.
- person Krzysztof Krasoń; 06.05.2016
sh 'mvn clean deploy | tee logs'; def logs = readFile 'logs'
, не пытаясь получить доступ к журналам сборки в целом.
- person Jesse Glick; 24.05.2016
Поскольку Дженкинс дает вам BUILD_URL
, вы можете скачать его:
sh('wget -q --no-check-certificate -O build.log ' + BUILD_URL + 'consoleText')