Что-то вроде
multibranchPipelineJob('pipline') {
...
branchSources {
branchSource {
source {
github {
...
traits {
...
gitTagDiscovery()
}
}
buildStrategies {
buildTags {
atLeastDays '-1'
atMostDays '20'
}
}
}
}
}
}
- это то, с чем я работал.Это не задокументировано в плагине, но это не мешает плагину job-dsl динамически генерировать вызовы API для него.
Чтобы узнать, что такое API для вашей конкретной установки Jenkins, перейдите на {your_jenkins_url}/plugin/job-dsl/api-viewer/index.html
.Иногда вещи там не появляются, потому что в плагинах отсутствует поддержка job-dsl.В этом случае вы все равно можете сгенерировать xml с помощью Configure Block .Однако использовать его довольно неуклюже.
Редактировать: По крайней мере, если я использую gitHubTagDiscovery()
, как подсказывает динамически генерируемый API, Дженкинс вылетит.Вместо этого необходимо использовать блок конфигурации, чтобы получить все методы обнаружения для github.
configure {
def traits = it / sources / data / 'jenkins.branch.BranchSource' / source / traits
traits << 'org.jenkinsci.plugins.github__branch__source.BranchDiscoveryTrait' {
strategyId(1)
}
traits << 'org.jenkinsci.plugins.github__branch__source.OriginPullRequestDiscoveryTrait' {
strategyId(1)
}
traits << 'org.jenkinsci.plugins.github__branch__source.TagDiscoveryTrait'()
}