Configurez Jenkins 2.332.3 cu JCasC și conducta Multibranch. Conducta este în general OK, dar necesită să facem clic Acest folder este gol | Configurați proiectul și apoi salva pentru ca acesta să recunoască orice job atunci când instanța jenkins este inițializată pentru prima dată!
Comportament așteptat: Când pod-ul kubernetes este inițializat și Jenkins pornește pentru prima dată, ar trebui să afecteze automat conducta configurată de mai multe ramuri, instanțiând joburile. NU ar trebui să arate pagina web „Acest folder este gol | Configurați proiectul” și proiectul ar fi trebuit să fi fost deja „salvat”.
Orice idee despre cum să activați configurarea automată a proiectului cu mai multe ramuri va fi bine apreciată.
Codul nostru JCasC este mai jos:
locuri de munca: |
locuri de munca:
- script: >
organizationFolder(„Organizația Xobabia”) {
buildStrategies {
skipInitialBuildOnFirstBranchIndexing()
}
descriere(„Organizația Xobabia”)
displayName(„Organizația Xobabia”)
// „Proiecte”
organizatii {
bitbucket {
serverUrl("https://xobabia.com")
repoOwner ("xobabia")
credentialsId(„${XOBABIA_SECRET_BITBUCKET_APP_CREDS_USERNAME}”)
// „Trasături” („Comportamente” în GUI) care sunt „compatibile cu declarația”
// trasaturi {
// webhookRegistrationTrait {
// mod('ITEM')
// }
//}
}
}
// „Trasături” („Comportamente” în GUI) care NU sunt „compatibile cu declarația”
// Pentru unele „trăsături”, trebuie să configuram aceste lucruri manual până când JobDSL se ocupă de ele
// https://issues.jenkins.io/browse/JENKINS-45504
configura { node ->
def caracteristici = nod / navigatori / 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator' / caracteristici
// Filtrați după nume (cu expresie regulată)
caracteristici << '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')
}
// Descoperă ramuri
trăsături << „com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait” {
strategieId('1')
// Valori
// 1: Excludeți sucursalele care sunt, de asemenea, depuse ca PR-uri
// 2 : Doar sucursalele care sunt de asemenea depuse ca PR-uri
// 3 : Toate ramurile
}
trăsături << 'com.cloudbees.jenkins.plugins.bitbucket.SSHCheckoutTrait' {
credentialsId('bitbucket-ssh')
}
// Descoperiți solicitările de extragere de la origine
caracteristici << 'com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait' {
strategieId('1')
// Valori
// 1: Îmbină cererea de extragere cu revizuirea curentă a ramurilor țintă
// 2 : Revizia curentă a cererii de extragere
// 3 : Atât revizuirea actuală a cererii de extragere, cât și cererea de extragere au fuzionat cu revizuirea curentă a ramurilor țintă
}
// Descoperiți solicitările de extragere din furci
caracteristici << „com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait” {
strategieId('1')
// Valori
// 1: Îmbină cererea de extragere cu revizuirea curentă a ramurilor țintă
// 2 : Revizia curentă a cererii de extragere
// 3 : Atât revizuirea actuală a cererii de extragere, cât și cererea de extragere au fuzionat cu revizuirea curentă a ramurilor țintă
trustID('2')
// Valori
// 0 : Toată lumea
// 1 : Bifurcă în același cont
// 2 : Nimeni
}
}
// „Recunoașterea proiectelor”
projectFactory {
workflowMultiBranchProjectFactory {
scriptPath „Jenkinsfile”
}
}
// „Strategia articolului orfan”
orphanedItemStrategy {
discardOldItems {
zile de păstrat(10)
numToKeep(10)
}
}
// „Declanșatoarele de foldere de organizare de scanare” : 1 zi
// Trebuie să configuram aceste lucruri manual, deoarece JobDSL permite doar „periodic(int min)” pentru moment
configura { node ->
nod / declanșează / „com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger” {
spec('H H * * *')
interval (86400000)
}
}
}
Mulţumesc mult