2013-04-09 35 views
11

Tôi đang cố gắng tạo một máy khách WCF REST sẽ giao tiếp với Jenkins và tạo một công việc từ một tệp XML và sau đó tạo công việc. Hiểu biết của tôi là bạn có thể làm điều đó với Jenkins.Tạo công việc và thực hiện chúng trong jenkins bằng cách sử dụng REST

Có thể một số người vui lòng cung cấp một số lệnh mà bạn có thể nhập trên thanh địa chỉ của trình duyệt để tạo và tạo công việc không? tức là: http:localhost/jenkins/createItem?name=TESTJOB điều gì đó dọc theo các dòng đó.

Trả lời

10

Xem Jenkins API Wiki page (bao gồm các nhận xét ở cuối). Bạn có thể điền vào các khoảng trống bằng cách sử dụng tài liệu được cung cấp bởi chính Jenkins; ví dụ: http://JENKINS_HOST/api sẽ cung cấp cho bạn URL để tạo công việc và http://JENKINS_HOST/job/JOBNAME/api sẽ cung cấp cho bạn URL để kích hoạt một bản dựng.

Tôi khuyên bạn nên tránh tạo tùy chỉnh các tệp XML cấu hình công việc và thay vào đó hãy xem một cái gì đó như là Job DSL plugin. Điều này mang lại cho bạn một DSL dựa trên Groovy tốt để tạo ra các công việc theo lập trình - ngắn gọn hơn nhiều và ít bị lỗi hơn.

+4

Cảm ơn, tôi đã mất một chút nhưng cuối cùng tôi đã có thể đoán ra. Tôi chỉ muốn trang wiki API của họ có nhiều thông tin hơn và với các ví dụ tốt hơn. – David

16

Thông thường, khi phân tích cú pháp thông qua tài liệu, có thể mất một hoặc hai ngày. Bạn có thể truy cập mã hoặc lệnh curl để giúp bạn và chạy trong một giờ. Đó là mục tiêu của tôi với rất nhiều phần mềm của bên thứ ba.

Xem bài đăng tại http://scottizu.wordpress.com/2014/04/30/getting-started-with-the-jenkins-api/ liệt kê một số lệnh curl. Bạn sẽ phải thay thế my.jenkins.com (tức là JENKINS_HOST) bằng url của riêng bạn.

Để tạo một công việc, ví dụ, hãy thử:

curl -X POST -H "Content-Type:application/xml" -d "<project><builders/><publishers/><buildWrappers/></project>" "http://JENKINS_HOST/createItem?name=AA_TEST_JOB2" 

này sử dụng một cấu hình chung. Bạn cũng có thể tải xuống một cấu hình từ một công việc được tạo theo cách thủ công và sau đó sử dụng nó làm mẫu.

curl "http://JENKINS_HOST/job/MY_JOB_NAME/config.xml" > config.xml 
curl -X POST -H "Content-Type:application/xml" -d @config.xml "http://JENKINS_HOST/createItem?name=AA_TEST_JOB3" 

Để thực hiện công việc (và thiết lập các thông số string), sử dụng:

curl "http://JENKINS_HOST/job/MY_JOB_NAME/build" 
curl "http://JENKINS_HOST/job/MY_JOB_NAME/buildWithParameters?PARAMETER0=VALUE0&PARAMETER1=VALUE1" 
+6

Tôi yêu bạn rất nhiều – michaelsnowden

2

Nhờ GIST - https://gist.github.com/stuart-warren/7786892

Kiểm tra xem công việc tồn tại

curl -XGET 'http://jenkins/checkJobName?value=yourJobFolderName' --user user.name:YourAPIToken 

Với thư mục Plugin

curl -s -XPOST 'http://jenkins/job/FolderName/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken 

Nếu không có thư mục Plugin

curl -s -XPOST 'http://jenkins/createItem?name=yourJobName' --data-binary @config.xml -H "Content-Type:text/xml" --user user.name:YourAPIToken 

Tạo thư mục

curl -XPOST 'http://jenkins/createItem?name=FolderName&mode=com.cloudbees.hudson.plugins.folder.Folder&from=&json=%7B%22name%22%3A%22FolderName%22%2C%22mode%22%3A%22com.cloudbees.hudson.plugins.folder.Folder%22%2C%22from%22%3A%22%22%2C%22Submit%22%3A%22OK%22%7D&Submit=OK' --user user.name:YourAPIToken -H "Content-Type:application/x-www-form-urlencoded" 
0

Nếu bạn muốn tạo một công việc vào một khung nhìn cho khung nhìn tồn tại.

curl -X POST -H "Content-Type:application/xml" -d @build.xml "http://jenkins_host/view/viewName/createItem?name=itemName" 

bản dựng.xml filetemplate có thể được tìm thấy trong thư mục gốc của không gian làm việc của một công việc

nếu bạn muốn tạo một cái nhìn:

curl -X POST -H "Content-Type:application/xml" -d @view.xml "http://jenkins_host/createView?name=viewName" 

nội dung của tập tin view.xml có thể là:

<?xml version="1.0" encoding="UTF-8"?> 
<hudson.model.ListView> 
    <name>viewName</name> 
    <filterExecutors>false</filterExecutors> 
    <filterQueue>false</filterQueue> 
    <properties class="hudson.model.View$PropertyList"/> 
    <jobNames> 
     <comparator class="hudson.util.CaseInsensitiveComparator"/> 
    </jobNames> 
    <jobFilters/> 
    <columns> 
     <hudson.views.StatusColumn/> 
     <hudson.views.WeatherColumn/> 
     <hudson.views.JobColumn/> 
     <hudson.views.LastSuccessColumn/> 
     <hudson.views.LastFailureColumn/> 
     <hudson.views.LastDurationColumn/> 
     <hudson.views.BuildButtonColumn/> 
    </columns> 
</hudson.model.ListView> 

và để kiểm tra xem chế độ xem có tồn tại hay không:

curl -X POST -H "Content-Type:application/xml" "http://jenkins_host/checkViewName?value=viewName" 

để kiểm tra xem một công việc tồn tại:

curl -X POST -H "Content-Type:application/xml" "http://jenkins_host/checkJobName?value=jobName" 
Các vấn đề liên quan