2013-04-09 9 views
11

का उपयोग करके जेनकींस में निष्पादित करें। मैं एक डब्ल्यूसीएफ आरईएसटी क्लाइंट बनाने की कोशिश कर रहा हूं जो जेनकींस से संवाद करेगी और एक एक्सएमएल फ़ाइल से नौकरी तैयार करेगी और फिर नौकरी का निर्माण करेगी। मेरी समझ यह है कि आप जेनकींस के साथ ऐसा कर सकते हैं।नौकरियां बनाएं और उन्हें REST

क्या कोई ऐसा कुछ आदेश प्रदान कर सकता है जिसे आप ब्राउज़र बनाने के लिए बार-बार ब्राउज़र के पता बार पर टाइप कर सकते हैं? यानी: http:localhost/jenkins/createItem?name=TESTJOB उन पंक्तियों के साथ कुछ।

उत्तर

10

Jenkins API Wiki page (अंत में टिप्पणियां सहित) देखें। आप जेनकींस द्वारा प्रदत्त दस्तावेज का उपयोग करके अंतराल को भर सकते हैं; उदाहरण के लिए, http://JENKINS_HOST/api आपको नौकरी बनाने के लिए यूआरएल देगा और http://JENKINS_HOST/job/JOBNAME/api आपको बिल्ड को ट्रिगर करने के लिए यूआरएल देगा।

मैं अत्यधिक नौकरी कॉन्फ़िगरेशन एक्सएमएल फाइलों के कस्टम निर्माण से बचने और Job DSL plugin की तरह कुछ देखने की सलाह देता हूं। यह आपको प्रोग्रामेटिक रूप से नौकरियां बनाने के लिए एक अच्छा ग्रोवी-आधारित डीएसएल देता है - अधिक संक्षिप्त और कम त्रुटि-प्रवण।

+4

धन्यवाद, यह मुझे थोड़ा सा ले गया लेकिन मैं अंततः इसे समझने में सक्षम था। मैं बस उनकी एपीआई विकी पेज अधिक जानकारीपूर्ण और बेहतर उदाहरणों के साथ चाहता हूं। – David

16

आमतौर पर, जब प्रलेखन के माध्यम से विश्लेषण करते हैं, तो इसमें एक या दो दिन लग सकते हैं। आपको एक घंटे में उठने और चलाने के लिए कोड या कर्ल कमांड तक पहुंचने में सक्षम होना उपयोगी होता है। यह मेरा उद्देश्य है कि बहुत सारे तृतीय पक्ष सॉफ़्टवेयर के साथ।

http://scottizu.wordpress.com/2014/04/30/getting-started-with-the-jenkins-api/ पर पोस्ट देखें जो कई कर्ल कमांड सूचीबद्ध करता है। आपको अपने यूआरएल के साथ my.jenkins.com (यानी जेएनकेआईएनएस_एचओएसटी) को प्रतिस्थापित करना होगा।

एक नौकरी बनाने के लिए, उदाहरण के लिए, कोशिश:

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

यह एक सामान्य config उपयोग करता है। आप मैन्युअल रूप से बनाई गई नौकरी से कॉन्फ़िगर भी डाउनलोड कर सकते हैं और फिर टेम्पलेट के रूप में इसका उपयोग कर सकते हैं।

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" 

काम (और सेट स्ट्रिंग पैरामीटर) पर अमल करने के लिए, उपयोग करें:

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

मैं तुमसे बहुत प्यार करता हूँ – michaelsnowden

2

एक GIST के लिए धन्यवाद - https://gist.github.com/stuart-warren/7786892

जांच करें कि काम मौजूद है

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

फ़ोल्डर प्लगइन के साथ

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

फ़ोल्डर प्लगइन के बिना

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

फ़ोल्डर बनाएँ

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

यदि आप दृश्य में नौकरी बनाना चाहते हैं तो दृश्य मौजूद है।

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

बिल्ड।एक्सएमएल filetemplate एक नौकरी के कार्यक्षेत्र की रूट निर्देशिका में पाया जा सकता है

कोई दृश्य बनाने के लिए करना चाहते हैं:

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

फ़ाइल view.xml की सामग्री हो सकता है:

<?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> 

और जांच करने के लिए एक दृश्य के मौजूद रहने पर: अगर एक नौकरी मौजूद

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

जाँच करने के लिए:

012,
curl -X POST -H "Content-Type:application/xml" "http://jenkins_host/checkJobName?value=jobName" 
संबंधित मुद्दे