Рейтинг:0

Папка организации конвейера Jenkins Multibranch с JCasC не инициализируется при запуске — требуется «Сохранить» через пользовательский интерфейс

флаг cn

Я настраиваю Jenkins 2.332.3 с JCasC и конвейером Multibranch. Конвейер в целом в порядке, но требует, чтобы мы нажали Эта папка пуста | Настроить проект а потом Сохранять чтобы он распознавал любые задания при первой инициализации экземпляра jenkins!

Ожидаемое поведение: когда модуль kubernetes инициализируется и Jenkins запускается в первый раз, он должен автоматически воздействовать на настроенный многоветвевой конвейер, создавая экземпляры заданий. Он НЕ должен отображать веб-страницу «Эта папка пуста | Настроить проект», и проект уже должен быть «сохранен».

Любые идеи о том, как включить автоматическую настройку многоветвевого проекта, будут высоко оценены.

Наш код JCasC приведен ниже:

вакансии: |
    вакансии:
      - скрипт: >
          OrganizationFolder('Организация Xobabia') {
            buildStrategies {
                skipInitialBuildOnFirstBranchIndexing()
            }
            description("Организация Xobabia")
            displayName('Организация Xobbia')
            // "Проекты"
            организации {
              битбакет {
                URL-адрес сервера("https://xobabia.com")
                repoOwner("xobbia")
                учетные данные("${XOBABIA_SECRET_BITBUCKET_APP_CREDS_USERNAME}")
                // "Черты" ("Поведения" в графическом интерфейсе), которые "декларативно-совместимы"
                // черты {
                // webhookRegistrationTrait {
                // режим('ЭЛЕМЕНТ')
                // }
                //}
              }
            }
            // «Черты» («Поведение» в графическом интерфейсе), которые НЕ «декларативно-совместимы»
            // Для некоторых признаков нам нужно настроить это вручную, пока JobDSL не справится с этим
            // https://issues.jenkins.io/browse/JENKINS-45504
            настроить {узел ->
                def traits = node/navigators/'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator'/traits
                // Фильтр по имени (с регулярным выражением)
                черты << 'jenkins.scm.impl.trait.RegexSCMSourceFilterTrait' {
                    regex('infra-k8s-namespaces-and-quotas|infra-jenkins-tests|infra-aws-iam|infra-docker|infra-k8s-rbac|infra-terraform-keycloak')
                }
                // Обнаружение ветвей
                черты << 'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait' {
                    Идентификатор стратегии('1')
                    // Ценности
                    // 1 : Исключить ветки, которые также зарегистрированы как PR
                    // 2 : Только ветки, которые также зарегистрированы как PR
                    // 3 : Все ветки
                }
                черты << 'com.cloudbees.jenkins.plugins.bitbucket.SSHCheckoutTrait' {
                    учетные данные ('bitbucket-ssh')
                }
                // Обнаружение запросов на извлечение из источника
                черты << 'com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait' {
                    Идентификатор стратегии('1')
                    // Ценности
                    // 1 : Слияние запроса на включение с текущей ревизией целевой ветки
                    // 2 : Текущая версия запроса на включение
                    // 3: Текущая версия запроса на вытягивание и запрос на вытягивание объединены с текущей ревизией целевой ветки
                }
                // Обнаружение пулл-реквестов от форков
                черты << 'com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait' {
                    Идентификатор стратегии('1')
                    // Ценности
                    // 1 : Слияние запроса на включение с текущей ревизией целевой ветки
                    // 2 : Текущая версия запроса на включение
                    // 3: Текущая версия запроса на вытягивание и запрос на вытягивание объединены с текущей ревизией целевой ветки
                    идентификатор доверия ('2')
                    // Ценности
                    // 0 : Все
                    // 1 : Разветвления в одной учетной записи
                    // 2 : Никто
                }
            }
            // "Распознаватель проектов"
            проектФабрики {
                рабочий процессMultiBranchProjectFactory {
                    scriptPath 'Дженкинсфайл'
                }
            }
            // "Стратегия потерянных предметов"
            orphanedItemStrategy {
              отказаться от старых элементов {
                днейХранить(10)
                числосохранить(10)
              }
            }
            // "Сканирование триггеров папок организации" : 1 день
            // Нам нужно настроить это вручную, потому что JobDSL пока разрешает только 'periodic(int min)'
            настроить {узел ->
              узел / триггеры / 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger' {
                спец('Ч Ч * * *')
                интервал(86400000)
              }
            }
          }

Огромное спасибо

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.