Tôi đang định cấu hình Jenkins 2.332.3 với JCasC và đường dẫn Multibranch. Đường ống nói chung là ổn nhưng nó yêu cầu chúng tôi nhấp vào Thư mục này trống | Cấu hình dự án và sau đó Tiết kiệm để nó nhận ra bất kỳ công việc nào khi phiên bản jenkins được khởi tạo lần đầu tiên!
Hành vi dự kiến: Khi nhóm kubernetes được khởi tạo và Jenkins kích hoạt lần đầu tiên, nó sẽ tự động tác động đến đường ống đa nhánh đã định cấu hình, khởi tạo các công việc. Nó KHÔNG được hiển thị trang web "Thư mục này trống | Định cấu hình dự án" và dự án đã được "lưu".
Mọi ý tưởng về cách bật tự động định cấu hình dự án nhiều nhánh sẽ được đánh giá cao.
Mã JCasC của chúng tôi ở bên dưới:
công việc: |
công việc:
- kịch bản : >
tổ chứcFolder('Tổ chức Xobabia') {
xây dựngStrategies {
skipInitialBuildOnFirstBranchIndexing()
}
description("Tổ chức Xobabia")
displayName('Tổ chức Xobabia')
// "Dự án"
tổ chức {
cai Xô nhỏ {
serverUrl("https://xobabia.com")
repoOwner("xobabia")
credentialsId("${XOBABIA_SECRET_BITBUCKET_APP_CREDS_USERNAME}")
// "Đặc điểm" ("Hành vi" trong GUI) "tương thích khai báo"
// đặc điểm {
// webhookRegistrationTrait {
// chế độ ('MỤC')
// }
//}
}
}
// "Đặc điểm" ("Hành vi" trong GUI) KHÔNG "tương thích khai báo"
// Đối với một số 'đặc điểm, chúng ta cần cấu hình công cụ này bằng tay cho đến khi JobDSL xử lý nó
// https://issues.jenkins.io/browse/JENKINS-45504
cấu hình { nút ->
defđặc điểm = nút/navigators/'com.cloudbees.jenkins.plugins.bitbucket.BitbucketSCMNavigator'/traits
// Lọc theo tên (với biểu thức chính quy)
đặc điểm << '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')
}
// Khám phá các nhánh
đặc điểm << 'com.cloudbees.jenkins.plugins.bitbucket.BranchDiscoveryTrait' {
StrategyId('1')
// Giá trị
// 1 : Loại trừ các nhánh cũng được lưu dưới dạng PR
// 2 : Chỉ các nhánh cũng được lưu dưới dạng PR
// 3 : Tất cả các nhánh
}
đặc điểm << 'com.cloudbees.jenkins.plugins.bitbucket.SSHCheckoutTrait' {
thông tin đăng nhậpId ('bitbucket-ssh')
}
// Khám phá các yêu cầu kéo từ nguồn gốc
đặc điểm << 'com.cloudbees.jenkins.plugins.bitbucket.OriginPullRequestDiscoveryTrait' {
StrategyId('1')
// Giá trị
// 1 : Hợp nhất yêu cầu kéo với bản sửa đổi nhánh mục tiêu hiện tại
// 2 : Bản sửa đổi yêu cầu kéo hiện tại
// 3: Cả bản sửa đổi yêu cầu kéo hiện tại và yêu cầu kéo được hợp nhất với bản sửa đổi nhánh mục tiêu hiện tại
}
// Khám phá pull request từ fork
đặc điểm << 'com.cloudbees.jenkins.plugins.bitbucket.ForkPullRequestDiscoveryTrait' {
StrategyId('1')
// Giá trị
// 1 : Hợp nhất yêu cầu kéo với bản sửa đổi nhánh mục tiêu hiện tại
// 2 : Bản sửa đổi yêu cầu kéo hiện tại
// 3: Cả bản sửa đổi yêu cầu kéo hiện tại và yêu cầu kéo được hợp nhất với bản sửa đổi nhánh mục tiêu hiện tại
TrustID('2')
// Giá trị
// 0 : Mọi người
// 1 : Chia rẽ trong cùng một tài khoản
// 2 : Không có ai
}
}
// "Người nhận dự án"
dự ánFactories {
quy trình làm việcMultiBranchProjectFactory {
scriptPath 'Jenkinsfile'
}
}
// "Chiến lược vật phẩm mồ côi"
mồ côiItemStrategy {
loại bỏOldItems {
ngàyToKeep(10)
numToKeep(10)
}
}
// "Trình kích hoạt thư mục tổ chức quét" : 1 ngày
// Chúng ta cần cấu hình công cụ này bằng tay vì JobDSL hiện chỉ cho phép 'periodic(int min)'
cấu hình { nút ->
nút / kích hoạt / 'com.cloudbees.hudson.plugins.folder.computed.PeriodicFolderTrigger' {
thông số kỹ thuật ('H H * * *')
khoảng thời gian(86400000)
}
}
}
Cảm ơn nhiều