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

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

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

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

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

      jobs: |
    jobs:
      - script: >
          organizationFolder('Xobabia Organisation') {
            buildStrategies {
                skipInitialBuildOnFirstBranchIndexing()
            }
            description("Xobabia Organisation")
            displayName('Xobabia Organisation')
            // "Projects"
            organizations {
              bitbucket {
                serverUrl("https://xobabia.com")
                repoOwner("xobabia")
                credentialsId("${XOBABIA_SECRET_BITBUCKET_APP_CREDS_USERNAME}")
                // "Traits" ("Behaviours" in the GUI) that are "declarative-compatible"
                // traits {
                //  webhookRegistrationTrait {
                //    mode('ITEM')
                //  }
                //}
              }
            }
            // "Traits" ("Behaviours" in the GUI) that are NOT "declarative-compatible"
            // For some 'traits, we need to configure this stuff by hand until JobDSL handles it
            // https://issues.jenkins.io/browse/JENKINS-45504
            configure { node ->
                def traits = node / navigators / 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator' / traits
                // Filter by name (with regular expression)
                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')
                }
                // Discover branches
                traits << 'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait' {
                    strategyId('1')
                    // Values
                    //  1 : Exclude branches that are also filed as PRs
                    //  2 : Only branches that are also filed as PRs
                    //  3 : All branches
                }
                traits << 'com.cloudbees.jenkins.plugins.bitbucket.SSHCheckoutTrait' {
                    credentialsId('bitbucket-ssh')
                }
                // Discover pull requests from origin
                traits << 'com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait' {
                    strategyId('1')
                    // Values
                    // 1 : Merging the pull request with the current target branch revision
                    // 2 : The current pull request revision
                    // 3 : Both the current pull request revision and the pull request merged with the current target branch revision
                }
                // Discover pull requests from forks
                traits << 'com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait' {
                    strategyId('1')
                    // Values
                    // 1 : Merging the pull request with the current target branch revision
                    // 2 : The current pull request revision
                    // 3 : Both the current pull request revision and the pull request merged with the current target branch revision
                    trustID('2')
                    // Values
                    // 0 : Everyone
                    // 1 : Forks in the same account
                    // 2 : Nobody
                }
            }
            // "Project Recognizers"
            projectFactories {
                workflowMultiBranchProjectFactory {
                    scriptPath 'Jenkinsfile'
                }
            }
            // "Orphaned Item Strategy"
            orphanedItemStrategy {
              discardOldItems {
                daysToKeep(10)
                numToKeep(10)
              }
            }
            // "Scan Organization Folder Triggers" : 1 day
            // We need to configure this stuff by hand because JobDSL only allow 'periodic(int min)' for now
            configure { node ->
              node / triggers / 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger' {
                spec('H H * * *')
                interval(86400000)
              }
            }
          }

Большое спасибо

0 ответов

Другие вопросы по тегам