Общаемся на темы, посвященныe Jenkins Видео с митапов: http://youtube.com/jenkinsru Место активного общения разработчиков https://gitter.im/jenkinsci-ru/publiс Самые свежие новости https://twitter.com/jenkins_ru
не помогло такое. какая-то кастрированная версия redHat была у меня, переустановка ос решила все проблемы, спасибо)
Читать полностью…это статус, который проставляется в декларативке, когда не выполняется условие в when { expression {}}
Читать полностью…У скриптового подхода тоже свои приколы дебильные, нет нормальных статусов как у делкаративного, я запилил целый плагин который умеет перезапускать вложенные параллельные стадии для декларативного подхода а под скриптовый он тупо не работает
Читать полностью…поэтому я всегда всем советую не слушать этих корифеев жанра, которые кричат про декларативку, и всё делать через скриптед 🌚
Читать полностью…ну было бы смешно если бы ошибка дописывалась в причины запуска 😉
проверил currentBuild.rawBuild.actions
, там тоже вроде нет ничего полезного:
[org.jenkinsci.plugins.workflow.cps.replay.ReplayFlowFactoryAction@120de917, hudson.model.CauseAction@eea4a2b, jenkins.metrics.impl.TimeInQueueAction@2a669fb7, org.jenkinsci.plugins.workflow.libs.LibrariesAction@26b6e13f, org.jenkinsci.plugins.pipeline.modeldefinition.actions.ExecutionModelAction@cbac71f]
getStagesList
и getPipelineDefs
, может оттуда получится что-то выудить, но хз 🤷
Читать полностью…
*в декларативном post aborted / post always
там выше сказали, что 20 стейджей; каждый заворачивать — повесишься
что сборка упала по таймауту
в скриптеде я примерно понимаю как это сделать — поймать исключение, посмотреть на его causes, найти там TimeoutStepExecution.ExceededTimeout
в декларативе хз, но вот выше была высказана гипотеза что между вылетом из основного пипелина и попаданием в post у билда появится нужный error action 🙃
Error when executing aborted post condition:
Also: org.jenkinsci.plugins.workflow.actions.ErrorAction$ErrorId: dea51fea-e3a1-4751-81ed-b5388140fde2
groovy.lang.MissingPropertyException: No such property: hudson for class: groovy.lang.Binding
потому что это причины запуска билда, а нужно на причины возникновения ошибки смотреть в catch(e)
а как на эти состояния посмотреть?
потому что реализация в исходниках на первый взгляд выглядит правдоподобно, с указанием этого самого skippedForConditional
:
static void markStageSkippedForConditional(String stageName) {Читать полностью…
markStageWithTag(stageName, getStageStatusMetadata().tagName, getStageStatusMetadata().skippedForConditional)
}
в смысле если через потроха дженкинса начать смотреть на состояния каждого отдельного стейджа?
Читать полностью…аа, эта штука
stage('optional things') {Читать полностью…
if (!do_stuff) {
echo('skipping stage')
org.jenkinsci.plugins.pipeline.modeldefinition.Utils.markStageSkippedForConditional(STAGE_NAME)
return
}
echo 'doing stuff'
}
декларативный пипелин — это github actions, gitlab ci, и прочее ямл-погромирование
если вас занесло в дженкинс — извольте программировать в привычном смысле этого слова
Опять эти приколы Declarative/Scripted пайпов, как же они нас замучили уже
Читать полностью…да можно же разными путями
currentBuild.buildCauses.each { cause -> println cause.shortDescription }
так, это про запуск
def causes = currentBuild.rawBuild.getAction(hudson.model.ExecutorAction).causes
и по итерацию по ним
post {
aborted {
script {
// Проверяем причину прерывания
if (currentBuild.getBuildCauses().toString().contains('Timeout')) {
echo "Провал из-за срабатывания таймаута"
}
}
}
не работает хрень