ฉันกำลังกำหนดค่า Jenkins 2.332.3 ด้วย JCasC และไปป์ไลน์ Multibranch โดยทั่วไปไปป์ไลน์นั้นใช้ได้ แต่ต้องการให้เราคลิก โฟลเดอร์นี้ว่างเปล่า | กำหนดค่าโครงการ แล้ว บันทึก เพื่อให้จดจำงานใด ๆ เมื่อมีการเริ่มต้นอินสแตนซ์ของเจนกินส์เป็นครั้งแรก!
พฤติกรรมที่คาดหวัง: เมื่อ kubernetes pod เริ่มต้นและ Jenkins เริ่มทำงานเป็นครั้งแรก ควรมีผลกับไปป์ไลน์แบบหลายสาขาที่กำหนดค่าไว้โดยอัตโนมัติ และสร้างอินสแตนซ์ของงาน ไม่ควรแสดงหน้าเว็บ "โฟลเดอร์นี้ว่างเปล่า | กำหนดค่าโครงการ" และโครงการควรได้รับการ "บันทึก" แล้ว
แนวคิดใด ๆ เกี่ยวกับวิธีเปิดใช้งานการกำหนดค่าอัตโนมัติของโครงการหลายสาขาจะได้รับการชื่นชมเป็นอย่างดี
รหัส JCasC ของเราอยู่ด้านล่าง:
งาน: |
งาน:
- สคริปต์: >
organizationFolder ('องค์กร Xobabia') {
สร้างกลยุทธ์ {
ข้ามInitialBuildOnFirstBranchIndexing()
}
คำอธิบาย ("องค์กร Xobabia")
displayName('องค์กร Xobabia')
// "โครงการ"
องค์กร {
บิตบัคเก็ต {
serverUrl("https://xobabia.com")
repoOwner("xobabia")
credentialsId("${XOBABIA_SECRET_BITBUCKET_APP_CREDS_USERNAME}")
// "ลักษณะ" ("พฤติกรรม" ใน GUI) ที่ "เข้ากันได้กับการประกาศ"
// ลักษณะ {
// webhookRegistrationTrait {
// โหมด ('รายการ')
// }
//}
}
}
// "ลักษณะ" ("พฤติกรรม" ใน GUI) ที่ไม่ "เข้ากันได้กับการประกาศ"
// สำหรับคุณสมบัติบางอย่าง เราจำเป็นต้องกำหนดค่าสิ่งนี้ด้วยมือจนกว่า JobDSL จะจัดการมัน
// https://issues.jenkins.io/browse/JENKINS-45504
กำหนดค่า { โหนด ->
ลักษณะ def = โหนด / ตัวนำทาง / 'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator' / ลักษณะ
// กรองตามชื่อ (ด้วยนิพจน์ทั่วไป)
ลักษณะ << '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 : เฉพาะสาขาที่ยื่นแบบพีอาร์ด้วย
// 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 : ทั้งการแก้ไขคำขอดึงปัจจุบันและคำขอดึงรวมกับการแก้ไขสาขาเป้าหมายปัจจุบัน
trustID('2')
//ค่า
// 0 : ทุกคน
// 1 : Forks ในบัญชีเดียวกัน
// 2 : ไม่มีใคร
}
}
// "ผู้จำแนกโครงการ"
โครงการโรงงาน {
เวิร์กโฟลว์ MultiBranchProjectFactory {
scriptPath 'เจนกินส์ไฟล์'
}
}
// "กลยุทธ์ไอเท็มกำพร้า"
orphanedItemStrategy {
ละทิ้งรายการเก่า {
วันที่ต้องเก็บ(10)
numToKeep(10)
}
}
// "ทริกเกอร์โฟลเดอร์สแกนองค์กร" : 1 วัน
// เราจำเป็นต้องกำหนดค่าสิ่งนี้ด้วยมือ เนื่องจาก JobDSL อนุญาตเฉพาะ 'periodic(int min)' เท่านั้นในตอนนี้
กำหนดค่า { โหนด ->
โหนด / ทริกเกอร์ / 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger' {
ข้อมูลจำเพาะ ('H H * * *')
ช่วงเวลา (86400000)
}
}
}
ขอบคุณมาก