Ответ 1
В разделе " Филиалы " вы можете добавить свойство "Подавить автоматический запуск SCM".
Это мешает Дженкинсу строить все с помощью Jenkinsfile
.
Я начинаю создавать свою среду мультибрендового конвейера, но я создал проблему.
Могу ли я запустить сканирование сборки только для обнаружения ветвей с помощью файла Jenkins, но без выполнения конвейера?
Мои проекты имеют разные ветки, и я не хочу, когда я запускаю сканирование сборки из родительского конвейера, который будет работать на всех каналах для всех дочерних конвейеров, в которых будет запущен файл Jenkins.
Спасибо за помощь!
В разделе " Филиалы " вы можете добавить свойство "Подавить автоматический запуск SCM".
Это мешает Дженкинсу строить все с помощью Jenkinsfile
.
Кроме того, вы можете сделать это программно
import jenkins.branch.*
import jenkins.model.Jenkins
for (f in Jenkins.instance.getAllItems(jenkins.branch.MultiBranchProject.class)) {
if (f.parent instanceof jenkins.branch.OrganizationFolder) {
continue;
}
for (s in f.sources) {
def prop = new jenkins.branch.NoTriggerBranchProperty();
def propList = [prop] as jenkins.branch.BranchProperty[];
def strategy = new jenkins.branch.DefaultBranchPropertyStrategy(propList);
s.setStrategy(strategy);
}
f.computation.run()
}
Это фрагмент Groovy, который вы можете выполнить в Jenkins, он будет выполнять сканирование, но не будет запускать новые "сборки" для всех обнаруженных ветвей.
Чтобы добавить к ответу @Stqs, вы также можете установить его noTriggerBranchProperty
, используя плагин Job DSL, например:
multibranchPipelineJob('example') {
...
branchSources {
branchSource {
...
strategy {
defaultBranchPropertyStrategy {
props {
// Suppresses the normal SCM commit trigger coming from branch indexing
noTriggerBranchProperty()
...
}
}
}
}
}
...
}