Вы можете использовать:
pipeline {
agent any
triggers {
pollSCM('H */4 * * 1-5')
}
stages {
stage('Example') {
steps {
echo 'Hello World'
}
}
}
}
Согласно документации Jenkins, pollSCM
делает следующее:
Принимает строку в стиле cron для определения регулярного интервала в который Дженкинс должен проверить для новых изменений источника. Если новые изменения существуют, конвейер будет повторно запущен.
Существует более сложный способ выполнения sh такого же поведения (просто альтернатива pollSCM
), то есть установка нормального cron :
triggers {
cron('H */4 * * 1-5')
}
И затем проверка на наличие изменений с помощью переменных среды:
stage('Example') {
when {
expression {
!env.currentBuild.changeSets.isEmpty()
}
}
steps {
echo 'Hello World'
}
}
Также для документов, env.currentBuild.changeSets
:
Это список наборов изменений, поступающих от отдельных проверок SCM; у каждого есть вид и список коммитов; каждый коммит имеет commitId, timestamp, msg, author и disabledFiles, каждый из которых имеет editType и путь; значение обычно не будет сериализуемым, поэтому вы можете получить к нему доступ только внутри метода, помеченного @ NonCPS
Ссылка: