5

निर्दिष्ट करने के लिए अनुमति देते हैं ऐसा लगता है कि अब आप केवल अपनी परियोजना में एक ही स्थान में एक भी Jenkinsfile जब Multibranch प्रकार का उपयोग कर सकते हैं।जेनकींस कार्यप्रवाह Multibranch Jenkinsfile पथ

वहाँ बहुत कॉन्फ़िगर मैं नाम Jenkinsfile के तहत परियोजना के रूट में से कहीं और Jenkinsfile जगह कर सकते हैं करने के लिए एक रास्ता है। उम्मीद है, क्योंकि फिक्स्ड कॉन्फ़िगरेशन का एक विकल्प है, शायद यह भविष्य के लिए एक विशेषता है, लेकिन मैं इस विकल्प की बहुत सराहना करता हूं, क्योंकि वर्तमान स्थिति में मेरे पास सब कुछ चलाने के लिए विकल्प नहीं है क्योंकि एक अच्छी तरह से संकलित पाइपलाइन रेपो का आकार। मैं एक ही भंडार के खिलाफ कई जेनकींस नौकरियां रखने की सोच रहा हूं।

- मार्कस

उत्तर

5

पाइपलाइन के साथ शुरू: Multibranch प्लगइन संस्करण 2.15, आप अपने विन्यास में Jenkinsfile स्थान को निर्दिष्ट कर सकते हैं।

https://stackoverflow.com/a/45172149/2141666 पर मेरा उत्तर और https://wiki.jenkins.io/display/JENKINS/Pipeline+Multibranch+Plugin पर प्लगइन बदलाव का देखें। बदलाव का से:

2,15 (जून 01, 2017) एक स्क्रिप्ट नाम/Jenkinsfile के अलावा अन्य पथ का चयन करने के

JENKINS-34,561 विकल्प।

1

मुझे लगता है कि मैं एक ऐसी ही समस्या हुई।

आप क्या कर सकते कहीं और संग्रहीत एक अलग "पाइपलाइन" फ़ाइल है। यह एक ही चेकआउट स्थान या एक साथ एक अलग चेकआउट में हो सकता है।

इस फाइल में आप तरीकों को परिभाषित कर सकते हैं और आप के साथ बंद बंद करने के लिए है "वापस इस" ताकि Jenkinsfile कि शुरू होता है दूसरे स्क्रिप्ट का उपयोग कर सकते हैं। उदाहरण:

def initialize(){ 
    wrap([$class: 'BuildUser']) { 
     env.buildUserName = "$env.BUILD_USER" 
     env.buildUserId = "$env.BUILD_USER_ID" 
     env.buildUserEmail = "$env.BUILD_USER_EMAIL" 
    } 
} 
// Has to exist with 'return this;' in order to be used as library 
return this; 

Jenkinsfile में आप उसके बाद निम्न कर सकते हैं:

def steps 
node { 
    steps = load 'MyJenkinsPipelineScript.groovy' 
    steps.initialize() 
} 

किसी भी वातावरण चर के आधार पर आप विभिन्न फ़ाइलें लोड कर सकते हैं। मुझे उम्मीद है कि यह मदद करता है।

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