Có rất nhiều ví dụ về kịch bản lệnh hấp dẫn (http://scriptlerweb.appspot.com/catalog/list) không có ví dụ về tạo công việc mới.Cách tạo và cấu hình Công việc Jenkins mới bằng cách sử dụng groovy?
8
A
Trả lời
3
Plugin Jenkins Job DSL Plugin có thể thêm các bước vào công việc để tạo/sửa đổi công việc hiện có.
Dưới đây là ví dụ từ trang web của plugin, tạo ra một công việc cho từng chi nhánh tại một kho git:
def project = 'quidryan/aws-sdk-test'
def branchApi = new URL("https://api.github.com/repos/${project}/branches")
def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
branches.each {
def branchName = it.name
def jobName = "${project}-${branchName}".replaceAll('/','-')
job(jobName) {
scm {
git("git://github.com/${project}.git", branchName)
}
steps {
maven("test -Dproject.name=${project}/${branchName}")
}
}
}
2
Cho rằng bạn có một chuỗi XML chứa config.xml cho công việc mới, kịch bản lệnh sau sẽ làm những gì bạn muốn.
import jenkins.model.*
def jobName = "my-new-job"
def configXml = "" // your xml goes here
def xmlStream = new ByteArrayInputStream(configXml.getBytes())
Jenkins.instance.createProjectFromXML(jobName, xmlStream)
Để biết thêm chi tiết, xem API Docs
+2
Sử dụng XML là điều tôi đang cố tránh. Nó chỉ làm cho mã groovy khó đọc và duy trì hơn. –
5
Tạo Pipeline kịch bản từ SCM công việc:
import hudson.plugins.git.*;
def scm = new GitSCM("[email protected]:dermeister0/Tests.git")
scm.branches = [new BranchSpec("*/develop")];
def flowDefinition = new org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition(scm, "Jenkinsfile")
def parent = Jenkins.instance
def job = new org.jenkinsci.plugins.workflow.job.WorkflowJob(parent, "New Job")
job.definition = flowDefinition
parent.reload()
Một ví dụ khác: https://github.com/linagora/james-jenkins/blob/master/create-dsl-job.groovy
0
def jobDSL="""
node {
stage("test"){
echo 'Hello World'
}
}
""";
//http://javadoc.jenkins.io/plugin/workflow-cps/index.html?org/jenkinsci/plugins/workflow/cps/CpsFlowDefinition.html
def flowDefinition = new org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition(jobDSL, true);
//http://javadoc.jenkins.io/jenkins/model/Jenkins.html
def parent = Jenkins.instance;
//parent=Jenkins.instance.getItemByFullName("parentFolder/subFolder")
//http://javadoc.jenkins.io/plugin/workflow-job/org/jenkinsci/plugins/workflow/job/WorkflowJob.html
def job = new org.jenkinsci.plugins.workflow.job.WorkflowJob(parent, "testJob")
job.definition = flowDefinition
job.setConcurrentBuild(false);
//http://javadoc.jenkins.io/plugin/branch-api/jenkins/branch/RateLimitBranchProperty.html
job.addProperty(new jenkins.branch.RateLimitBranchProperty.JobPropertyImpl
(new jenkins.branch.RateLimitBranchProperty.Throttle (60,"hours")));
def spec = "H 0 1 * *";
hudson.triggers.TimerTrigger newCron = new hudson.triggers.TimerTrigger(spec);
newCron.start(job, true);
job.addTrigger(newCron);
job.save();
Jenkins.instance.reload()
Các vấn đề liên quan
- 1. Tạo công việc và thực hiện chúng trong jenkins bằng cách sử dụng REST
- 2. Cách lấy danh sách Công việc Jenkins bằng cách sử dụng API XML
- 3. Plugin tốt nhất để thông báo cho công việc mới và thay đổi cấu hình trong Jenkins?
- 4. Tôi có thể kích hoạt công việc Jenkins bằng cách sử dụng phụ thuộc Maven không?
- 5. Trả lại ID mục công việc TFS mới được tạo bằng cách sử dụng API TFS?
- 6. Lệnh cấu hình jenkins đa cấu hình
- 7. Cách tạo trạng thái công việc Jenkins bị hủy bỏ
- 8. API CLI Jenkins/Hudson để sửa đổi nhãn nút bằng cách sử dụng Groovy
- 9. Định cấu hình plugin Subversion trong Jenkins để sử dụng 1.6 bản sao làm việc
- 10. Cách cấu hình log4j 1.2 bằng cách sử dụng xml
- 11. Thừa kế công việc trong công việc Jenkins
- 12. Cách cấu hình RetryAdvice và ExceptionTranslation cho Deadlocks bằng cách sử dụng NHibernate và Spring
- 13. Cách cấu hình Jenkins (Hudson) với chữ ký gpg
- 14. Cách thiết lập nô lệ Jenkins mới
- 15. Sự khác biệt giữa Công việc và Dự án Jenkins
- 16. Tải cấu hình System.ServiceModel bằng cách sử dụng ConfigurationManager
- 17. Đổi tên công việc trong jenkins
- 18. Mã hóa cấu hình web bằng cách sử dụng ASPNET_REGIIS
- 19. Trì hoãn công việc sau khi tạo Jenkins
- 20. Chạy nhiệm vụ công việc liên tiếp trên một số môi trường bằng cách sử dụng Jenkins
- 21. Mở thư mới bằng cách sử dụng php và html
- 22. Tạo cửa sổ mới bằng cách sử dụng jquery
- 23. cách sử dụng logback được định cấu hình thông qua logback.groovy với groovy
- 24. Công việc đa cấu hình - đầu ra ở đâu?
- 25. Kích hoạt một jenkins xây dựng từ git bằng cách sử dụng cloudbees và bitbucket
- 26. Cấu hình Tomcat bằng cách sử dụng DBCP
- 27. Hiện vật cấu hình ma trận Jenkins
- 28. Cách sử dụng mảng công việc? (JNI)
- 29. Làm cách nào để cấu hình bắt đầu thực hiện giữa các công việc phụ thuộc?
- 30. Luồng công việc tốt nhất bằng cách sử dụng node.js npm và git
Tham khảo [này] (http: //stackoverflow.com/a/8803743/2051952) và [this] (htt p: //stackoverflow.com/questions/10413936/creating-a-jenkins-environment-variable-using-groovy) để biết một số thông tin chi tiết. – dmahapatro
có thể trùng lặp của [Cấu hình hoặc Tạo công việc hudson tự động] (http://stackoverflow.com/questions/3886892/configure-or-create-hudson-job-automatically) –