2016-02-10 14 views
9

में विफल रहता है मेरे पास एक गिट रेपो है जिसमें एक सबमिशन है। दोनों बिटबकेट पर एक टीम के हैं। मेरी जेनकींस मशीन गिट प्लगइन के साथ एक एडब्ल्यूएस विंडोज सर्वर है। मैं प्रमाणीकरण के लिए एसएसएच कुंजी का उपयोग कर रहा हूँ। मेरे पास तीन जेनकिन्स नौकरियां हैं I मुख्य रेपो एक क्लोन। यह सफल है। एक क्लोन अपने दूसरे पर रेपो (रेपो जो एक सबमिशन के रूप में इस्तेमाल किया जाएगा)। यह भी सफल है। मेरे तीसरे निर्माण कार्य में मैं जेनकींस को पुन: क्रमशः पनडुब्बियों को अद्यतन करने के लिए कहता हूं। यह विफल रहता है और सार्वजनिक कुंजी त्रुटि कहता है। यदि मैं रेपो को अपने आप क्लोन कर सकता हूं तो यह कैसे हो सकता है?जेनकिंस गिट सबमिशन अपडेट

कंसोल नीचे उत्पादन:

Started by user anonymous 
Building on master in workspace C:\Program Files (x86)\Jenkins\jobs\MainRepo\workspace 
Wiping out workspace first. 
Cloning the remote Git repository 
Cloning repository [email protected]:team/mainrepo.git 
> git.exe init C:\Program Files (x86)\Jenkins\jobs\mainrepo\workspace # timeout=10 
Fetching upstream changes from [email protected]:team/mainrepo.git 
> git.exe --version # timeout=10 
using GIT_SSH to set credentials 
> git.exe -c core.askpass=true fetch --tags --progress [email protected]:team/mainrepo.git +refs/heads/*:refs/remotes/origin/* 
> git.exe config remote.origin.url [email protected]:team/mainrepo.git # timeout=10 
> git.exe config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 
> git.exe config remote.origin.url [email protected]:team/mainrepo.git # timeout=10 
Fetching upstream changes from [email protected]:team/mainrepo.git 
using GIT_SSH to set credentials 
> git.exe -c core.askpass=true fetch --tags --progress [email protected]:team/mainrepo.git +refs/heads/*:refs/remotes/origin/* 
> git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 
> git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 
Checking out Revision 6b3f6535c45e79ee88f4918d464edead48d83369 (refs/remotes/origin/master) 
> git.exe config core.sparsecheckout # timeout=10 
> git.exe checkout -f 6b3f6535c45e79ee88f4918d464edead48d83369 
> git.exe rev-list 6b3f6535c45e79ee88f4918d464edead48d83369 # timeout=10 
> git.exe remote # timeout=10 
> git.exe submodule init # timeout=10 
> git.exe submodule synC# timeout=10 
> git.exe config --get remote.origin.url # timeout=10 
> git.exe submodule update --init --recursive 
FATAL: Command "git.exe submodule update --init --recursive" returned status code 128: 
stdout: 
stderr: Cloning into 'my-submodule'... 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
fatal: clone of '[email protected]:team/my-submodule.git' into submodule path 'my-submodule' failed 

hudson.plugins.git.GitException: Command "git.exe submodule update --init --recursive" returned status code 128: 
stdout: 
stderr: Cloning into 'my-submodule'... 
Permission denied (publickey). 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 
fatal: clone of '[email protected]:team/my-submodule.git' into submodule path 'my-submodule' failed 

    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1693) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:62) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$7.execute(CliGitAPIImpl.java:953) 
    at hudson.plugins.git.extensions.impl.SubmoduleOption.onCheckoutCompleted(SubmoduleOption.java:90) 
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1098) 
    at hudson.scm.SCM.checkout(SCM.java:485) 
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1276) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607) 
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) 
    at hudson.model.Run.execute(Run.java:1738) 
    at hudson.matrix.MatrixBuild.run(MatrixBuild.java:301) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:410) 
Finished: FAILURE 
+0

क्या आप सभी तीन नौकरियों के लिए एक ही जेनकिंस प्रमाण-पत्र का उपयोग कर रहे हैं? क्या वे सभी एक ही एडब्ल्यूएस उदाहरण पर चलते हैं? और क्या आप सभी तीन नौकरियों में गिट कमांड चलाने के लिए एक ही उपयोगकर्ता खाते का उपयोग करते हैं? मैं देखता हूं कि असफल नौकरी "अज्ञात" खाते का उपयोग करती है। –

+0

हां, सभी एक ही एडब्ल्यूएस उदाहरण पर। सभी एक ही एसएसएच कुंजी प्रमाण पत्र का उपयोग कर। मेरे पास उपयोगकर्ता खाते सेट अप नहीं हैं, यह केवल इस समय मैं इसका उपयोग कर रहा हूं। – SlimCheney

उत्तर

0

यह है था जेनकींस में एक ज्ञात बग: https://issues.jenkins-ci.org/browse/JENKINS-20941 लेकिन अब यह तय किया गया है, इस मुद्दे को हल करने के लिए अपना Git प्लगइन अद्यतन करें।

अगर काम करना संभव नहीं है, तो कामकाज के रूप में, आप जेनकिंस-उपयोगकर्ता। एसएसएच फ़ोल्डर में कुंजी डाल सकते हैं।

+0

मैं विंडोज सर्वर पर स्थानीय सिस्टम खाते के रूप में जेनकींस चला रहा हूं, इसलिए मैं जो कर रहा हूं वह मेरा। एसएसएच फ़ोल्डर सी:/एसएसएच में डाल रहा था और होम पर्यावरण चर को सी:/ – SlimCheney

+0

पर सेट कर रहा था निश्चित रूप से कुछ मजाकिया अनुमतियां थीं चल रहा। इस बात को ध्यान में रखते हुए कि प्रशासक के रूप में चलाने के लिए सेवा सेट करना इस मुद्दे को डीबग करने का एक अच्छा तरीका था (स्पष्ट रूप से करने के लिए एक छोटी अवधि की बात है!) – SlimCheney

3

वैकल्पिक रूप से, आप सभी उप-मॉड्यूल मैन्युअल रूप से कॉन्फ़िगर करने के लिए 'स्रोत कोड प्रबंधन' - 'एकाधिक एससीएम' का उपयोग कर सकते हैं और प्रत्येक के लिए 'अतिरिक्त व्यवहार' - 'उप-निर्देशिका में जांचें' जोड़ सकते हैं।

4

ऐसा लगता है कि वे संस्करणों के साथ यह तय कर दी है Git क्लाइंट प्लग इन 1.20.0-beta1 और Git प्लगइन 2.5.0-beta1। हालांकि, वे केवल प्रयोगात्मक अद्यतन केंद्र से अद्यतन खींचने के लिए निर्दिष्ट करके जेनकींस में जोड़ा जा सकता है।

+0

Ive क्लाइंट प्लगइन 1.21.0 और गिट प्लगइन 2.5.3 को गेट करने के लिए अपडेट किया गया लेकिन कुछ भी नहीं बदला। मुझे कुछ याद आ रही है? – dknaack

+0

क्या आपने "उन्नत सबमोड्यूल व्यवहार" अनुभाग को सही तरीके से कॉन्फ़िगर किया है? उनके मुद्दे ट्रैकर से [इस टिप्पणी में] निर्देशों को देखें (https://issues.jenkins-ci.org/browse/JENKINS-20941?focusedCommentId=263469#comment-263469)। – danielfn

+0

हाँ मैंने किया। Ive अब मेरी समस्या हल करने पर क्लाइंट प्लगइन 2.0.0-beta4 गिट करने के लिए अद्यतन किया गया है। – dknaack

14

यहां दिए गए उत्तरों के आधार पर, मैंने अपने ग्राहक के जेनकींस को अपग्रेड करने के लिए फिर से प्राथमिकता दी। अब वे गिट प्लगइन 3.0.1 के साथ जेनकींस 2.41 पर हैं और अतिरिक्त कॉन्फ़िगरेशन से पहले इस मुद्दे को ठीक नहीं किया गया है। मैं विन्यास पाया एक छोटे से मुश्किल हो रहे हैं:

  1. स्रोत कोड प्रबंधन करने के लिए शीर्ष स्तर के भंडार जोड़ें -> Git
  2. "अतिरिक्त व्यवहार" बटन
    • जोड़ें का चयन करें का चयन करें "उन्नत उप मॉड्यूल व्यवहार रिकर्सिवली अद्यतन submodules "
  3. मैं केवल के साथ परीक्षण किया" "और मिल गया" अनुमति अस्वीकृत "त्रुटि (नीचे देख *)
  4. हालांकि, मैं अब दोनों का चयन "रिकर्सिवली submodules अद्यतन" और एक बार मैं दोनों विकल्प चुन सकते जेनकींस 2,41

में "जनक भंडार के डिफ़ॉल्ट दूरदराज से प्रमाणिकता का उपयोग करें", यह साख मैं शीर्ष स्तर के भंडार के लिए कॉन्फ़िगर किया था का उपयोग करता है और सब कुछ मेरे लिए काम करता है। यहाँ संवाद Git प्लगइन 3.0.1 के साथ 2.41 में ऐसा दिखाई देता है: git submodule authentication configuration under Jenkins 2.41

* यहाँ "से इनकार अनुमति" त्रुटि मेरी का सार है:

Cloning into 'thirdparty'...

stderr: Permission denied (publickey). fatal: The remote end hung up unexpectedly Clone of 'ssh://[email protected]//thirdparty' into submodule path 'thirdparty' failed

पुनश्च बस पोस्ट करने से पहले, मैं अपनी यह सुनिश्चित करने के लिए सामान्य डबल चेक करें कि मैं एक जवाब डुप्लिकेट नहीं कर रहा हूं। इस मामले में, मैं देखता हूं कि @ डैनफेल की टिप्पणी किसी ऐसे चीज को इंगित करती है जो मेरे उत्तर के लगभग समान है, लेकिन 1. इससे मेरी मदद नहीं हुई और मैंने इसे परीक्षण और त्रुटि से बाहर निकाला और 2. यह पोस्ट करने के लिए स्टैक ओवरफ्लो नीति है बाहरी लिंक का संदर्भ देने के बजाय यहां जवाब दें।

+1

इसे उत्तर के रूप में स्वीकार किया जाना चाहिए, आपने मेरे घंटों को बचाया। –

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