2016-08-04 10 views
7

का उपयोग करके गिट मर्ज/पुश करना संभव है। मैं जेनकिन्सफाइल का उपयोग करके जेनकींस वर्कफ़्लो बनाने की कोशिश कर रहा हूं। मैं बस इतना करना चाहता हूं कि बदलावों के लिए 'विकास' शाखा की निगरानी करें। जब कोई परिवर्तन होता है, तो मैं चाहता हूं कि यह टैग को गिट करें और मास्टर में विलय करें। मैं जीआईटीएससीएम चरण का उपयोग कर रहा हूं लेकिन एकमात्र चीज जो इसे समर्थन देने के लिए प्रतीत होती है वह गिट क्लोन है। मैं टैग/मर्ज करने के लिए बाहर निकलना नहीं चाहता हूं लेकिन मुझे इसके चारों ओर कोई रास्ता नहीं दिख रहा है। यदि संभव है तो किस प्रकार, क्या कोई जानता है? मैं अपने गिट सर्वर के लिए बिटबकेट (ऑन-प्री) का उपयोग कर रहा हूं।क्या जेनकिंस पाइपलाइन

उत्तर

13

इस समय संभव नहीं है क्योंकि GitPublisher प्लगइन, प्लगइन/विलय/फ्रीस्टाइल नौकरियों में धक्का देने के लिए पहले प्लगइन प्लगइन को जेनकींस पाइपलाइनों के साथ संगत होने के लिए अपडेट नहीं किया गया है। आप pipeline plugins compatibility page और समर्पित GitPublisher Jira issue दोनों पर उस समस्या का पालन कर सकते हैं।

तो ऐसा लगता है कि वास्तव में आपके टैग/मर्ज कमांड को खोलने का एकमात्र विकल्प है ... हालांकि, ध्यान दें कि आप अभी भी कुछ जेनकींस अंतर्निहित क्षमताओं से लाभ उठा सकते हैं जैसे कि आपके गिट रेपो के लिए प्रमाण-पत्रों का उपयोग , जो इसे आपकी आवश्यकताओं के बाद टैग/मर्ज करने के लिए बहुत सरल बनाता है।

उदाहरण चेक-आउट:

git url: "ssh://[email protected]:12345/your-git-project.git", 
    credentialsId: 'jenkins_ssh_key', 
    branch: develop 

तब टैग/मर्ज/धक्का बिल्कुल स्पष्ट हो जाएगा:

sh 'git tag -a tagName -m "Your tag comment"' 
sh 'git merge develop' 
sh 'git commit -am "Merged develop branch to master' 
sh "git push origin master" 

मुझे आशा है कि एक दिन GitPublisher एक पाइप लाइन के संगत संस्करण में जारी किया जाएगा , लेकिन अभी के लिए इस कामकाज करना चाहिए।

+3

सच? जब मैं उपर्युक्त उत्तर (एसएसएच क्रेडेंशियल का उपयोग करके ऊपर रहता हूं) का प्रयास करता हूं और रिमोट I 'अनुमति अस्वीकार (सार्वजनिक रूप से) के साथ संवाद करने वाली किसी भी चीज को करने का प्रयास करता हूं।' यह उपरोक्त के रूप में गिट से कोड को चेकआउट करने में सक्षम है, लेकिन क्रेडेंशियल्स को –

+0

कैश नहीं किया गया है चलो अपने [समर्पित प्रश्न] (http://stackoverflow.com/q/39237910/702954) – Pom12

6

क्या आप Git साख आप इस लिंक में तरह SSH एजेंट प्लगइन का उपयोग कर सकते हैं के बाद कर रहे हैं: मैं https://issues.jenkins-ci.org/browse/JENKINS-28335?focusedCommentId=260925&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-260925

sshagent(['git-credentials-id']) { 
    sh "git push origin master" 
} 
+0

पर आपकी विशिष्ट समस्या के साथ जारी रखें उपयोगकर्ता नाम और पासवर्ड मांगना – vinay

+0

सुनिश्चित करें कि आपने अपने गिट पर एसएसएच सक्षम के माध्यम से लॉगिन किया है और आपने अपनी जेनकींस में सही एसएसएच कुंजी जोड़ दी हैं।इसने मेरे और 6 अन्य लोगों के लिए बिना किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता के काम किया है। –

0

मेरे मामले में HTTPS के साथ काम करने के लिए मजबूर किया गया। एक उपयोगकर्ता नाम/पासवर्ड क्रेडेंशियल bitbucketUsernamePassword बनाना

  1. : मैं द्वारा इसे हल।
  2. चेकआउट के लिए उस क्रेडेंशियल का उपयोग करना।
  3. चेकआउट करने से पहले credential.helper सेट करना।
  4. स्थानीय शाखा ट्रैकिंग दूरस्थ प्राप्त करने के लिए गिट चेकआउट शाखा करना।

तब मैं गिट पुश के साथ चीजों को धक्का देने में सक्षम हूं।

इस तरह

:

sh 'git config --global credential.helper cache' 
sh 'git config --global push.default simple' 

checkout([ 
    $class: 'GitSCM', 
    branches: [[name: branch]], 
    extensions: [ 
     [$class: 'CloneOption', noTags: true, reference: '', shallow: true] 
    ], 
    submoduleCfg: [], 
    userRemoteConfigs: [ 
     [ credentialsId: 'bitbucketUsernamePassword', url: cloneUrl] 
    ] 
]) 
sh "git checkout ${branch}" //To get a local branch tracking remote 

तब मैं की तरह कर सकते हैं:

sh 'git push' 
संबंधित मुद्दे