6

स्वचालन के लिए, मैं एक पाइप लाइन के काम के साथ एक जेनकींस 2.0 उदाहरण प्रारंभ करना चाहते हैं। मैं एक ग्रूवी स्क्रिप्ट बनाना चाहता हूं जिसे स्टार्टअप पर /usr/share/jenkins/ref/init.groovy.d/ फ़ोल्डर में कॉपी किया गया है। एससीएम से जेनकिन्सफाइल को संसाधित करने के लिए लिपि को जेनकींस 2.0 पाइपलाइन नौकरी बनाना चाहिए।प्रारंभ करने जेनकींस init.groovy.d लिपि में पाइप लाइन के साथ 2.0

मैं 2.0 पाइपलाइन वर्ग या ऐसा करने के तरीके के उदाहरण के लिए प्रासंगिक जावाडोक नहीं मिल रहा।

पहले, एक पाइपलाइन बनाने के लिए जॉब डीएसएल का उपयोग करके, मैंने को ExecuteDslScripts निर्माता के साथ बनाने के लिए एक ग्रोवी स्क्रिप्ट का उपयोग किया था। वह नौकरी तब नौकरी डीएसएल बीज नौकरी होगी।

एक विकल्प एक जेनकींस 2.0 पाइपलाइन बनाने के लिए एक नौकरी डीएसएल बीज काम बनाने के लिए एक init स्क्रिप्ट का उपयोग करने के लिए है। यह अनावश्यक रूप से जटिल लगता है।

मैं इस रेपो में प्रयोग कर रहा हूँ: https://github.com/martinmosegaard/vigilant-sniffle

उत्तर

3

आप केवल एक सरल पाइपलाइन काम बनाने की जरूरत है, तो आप जेनकींस एपीआई का उपयोग कर सकते हैं। लेकिन एक जटिल काम के लिए, एक साधारण नौकरी बनाने के दौरान वास्तव में केवल अच्छी तरह से काम करता है, आपको नौकरी डीएसएल जैसे कुछ अमूर्तता की आवश्यकता होती है।

यहां से शुरू करें

: http://javadoc.jenkins-ci.org/jenkins/model/Jenkins.html#createProject(java.lang.Class,%20java.lang.String)

उदाहरण:

import jenkins.model.Jenkins 
import org.jenkinsci.plugins.workflow.job.WorkflowJob 

WorkflowJob job = Jenkins.instance.createProject(WorkflowJob, 'my-pipeline') 

तो फिर तुम काम को भरने के लिए, उदाहरण के लिए की जरूरत है एक प्रवाह परिभाषा स्थापित करना।

या आप तैयार होने के लिए System Config DSL Plugin के लिए प्रतीक्षा कर सकते हैं। लेकिन इसे अभी तक जारी नहीं किया गया है और मुझे यकीन नहीं है कि यह नौकरियां पैदा कर सकता है या नहीं।

+0

शायद जोड़ना चाहते हैं: 'job.definition = new cpsFlowDefinition ('...', true)' –

+0

धन्यवाद। मैं जॉब डीएसएल और फिर 'वर्कफ़्लो जॉब' के साथ रह सकता हूं। मेरी समस्या यह है कि 'javadoc.jenkins-ci.org' से, मुझे जो चाहिए वह ढूंढना मुश्किल है। उदाहरण के लिए, जो 'जॉब/जॉबटी' लागू करता है, उदाहरण के मामलों का उपयोग करें, आदि। मुझे गिटहब पर 'वर्कफ़्लो जॉब' मिला है - https://github.com/jenkinsci/workflow-job-plugin/tree/master/src/main/जावा/संगठन/जेनकिंसी/प्लगइन्स/वर्कफ़्लो/नौकरी - लेकिन वास्तव में खोज करने के लिए बहुत सारे प्लगइन्स हैं यदि आप नहीं जानते कि आप वास्तव में क्या खोज रहे हैं। –

10

जॉब डीएसएल 1.47 (जल्द ही रिलीज़ होने के साथ) के साथ आप बीज नौकरी बनाने की आवश्यकता के बिना सीधे आईएनटी डीएसएल एपीआई का उपयोग इनिट स्क्रिप्ट से कर सकते हैं।

import javaposse.jobdsl.dsl.DslScriptLoader 
import javaposse.jobdsl.plugin.JenkinsJobManagement 

def jobDslScript = new File('jobs.groovy') 
def workspace = new File('.') 

def jobManagement = new JenkinsJobManagement(System.out, [:], workspace) 

new DslScriptLoader(jobManagement).runScript(jobDslScript.text) 

जानकारी के लिए PR #837 देखें।

+0

धन्यवाद, यह भी वास्तव में सहायक होगा। –

+1

धन्यवाद। कोड का यह टुकड़ा काम करता है और वास्तव में सहायक है। हालांकि, कुछ दस्तावेजों के लिए एक लिंक की अत्यधिक सराहना की जाएगी। – egelev

संबंधित मुद्दे