Давайте начнем работу в Jenkins Job DSL Groovy, которая генерирует конвейер следующим образом:
pipeline {
agent any
stages {
stage("DSL") {
steps {
jobDsl scriptText: """pipelineJob("test-pipeline-generated") {
definition {
cps {
script 'pipeline { agent(any); triggers{ cron("H/2 * * * *") }; stages { stage("Some") { steps { echo "Working ..." } } } }'
}
}
}
"""
}
}
}
}
Она генерирует конвейерное задание, которое должно быть запущено вручную в первый раз для обработки triggers
определенияи все работает отлично. Однако, когда начальное задание запускается снова, оно перезаписывает определение конвейерного задания и триггеры снова пропали . Это означает, что начальное задание отключает все такие задания.
Кто-нибудь знает, есть ли какое-то решение для этого?
Мы бы хотели сохранить там триггеры, и, если в конвейере произошли изменения, он будет обработан после первого запуска. Мы не хотели бы указывать триггеры в DSL задания, поскольку пользователи используются для их указания в определении конвейера.