2014-09-18 7 views
7

के साथ गिथब-जेनकींस ट्रिगर समस्या मेरे पास एक जेनकिन्स उदाहरण है जिसमें विंडोज़ दास मशीन संलग्न है। मेरे पास भी एक नौकरी चल रही है जो जिथब में रहती है और मेरे पास ट्रिगर है - "जब गिटहब में एक बदलाव धक्का दिया जाता है" सेट करें।दास

क्योंकि मैं जिथब में बदलाव को दबाता हूं, जेनकिंस पर कोई निर्माण ट्रिगर नहीं होता है। मैं जाँच की और पाया कि पेलोड "Github हुक लॉग" में जेनकींस को tranferred हो जाता है, लेकिन मैं निम्नलिखित त्रुटि मिलती है:

Started on Sep 18, 2014 3:57:06 PM 
Using strategy: Default 
[poll] Last Built Revision: Revision ce6a183e834a3e31afa0eb83a4418b0619c8642b (origin/master) 
> "C:\Program Files (x86)\Git\cmd\git.exe" ls-remote -h https://xx/xx/xx master # timeout=10 
FATAL: hudson.plugins.git.GitException: Error performing command: "C:\Program Files (x86)\Git\cmd\git.exe" ls-remote -h https://xx/xx/xx master 
hudson.util.IOException2: hudson.plugins.git.GitException: Error performing command: "C:\Program Files (x86)\Git\cmd\git.exe" ls-remote -h https://xx/xx/xx master 
    at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:462) 
    at hudson.scm.SCM._compareRemoteRevisionWith(SCM.java:357) 
    at hudson.scm.SCM.poll(SCM.java:374) 
    at hudson.model.AbstractProject._poll(AbstractProject.java:1428) 
    at hudson.model.AbstractProject.poll(AbstractProject.java:1331) 
    at com.cloudbees.jenkins.GitHubPushTrigger$1.runPolling(GitHubPushTrigger.java:73) 
    at com.cloudbees.jenkins.GitHubPushTrigger$1.run(GitHubPushTrigger.java:98) 
    at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:118) 
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: hudson.plugins.git.GitException: Error performing command: "C:\Program Files (x86)\Git\cmd\git.exe" ls-remote -h https://xx/xx/xx master 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1444) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1225) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1138) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1129) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getHeadRev(CliGitAPIImpl.java:2059) 
    at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:495) 
    at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:460) 
    ... 13 more 
Caused by: java.io.IOException: Cannot run program ""C:\Program Files (x86)\Git\cmd\git.exe"": error=2, No such file or directory 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041) 
    at hudson.Proc$LocalProc.<init>(Proc.java:244) 
    at hudson.Proc$LocalProc.<init>(Proc.java:216) 
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:780) 
    at hudson.Launcher$ProcStarter.start(Launcher.java:360) 
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1433) 
    ... 19 more 
Caused by: java.io.IOException: error=2, No such file or directory 
    at java.lang.UNIXProcess.forkAndExec(Native Method) 
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:130) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022) 
    ... 24 more 

मूल रूप से शिकायत के बारे में नहीं आदेश को चलाने के लिए C:\Program Files (x86)\Git\cmd\git.exe" ls-remote -h https://xx/xx/xx master

के रूप में लेकिन सक्षम किया जा रहा मैं मैन्युअल रूप से अपनी दास मशीन में जाता हूं और कमांड चलाता हूं, यह ठीक काम करता है।

कृपया ध्यान दें कि 1. मैंने समायोजन किया है जहां जेनकींस दास सेवा व्यवस्थापक के रूप में लॉग इन करती है ताकि इसमें सभी अनुमतियां हों। 2. मेरा डिफ़ॉल्ट जेनकिन्स सर्वर एक लिनक्स बॉक्स है और दास मशीन एक विंडोज बॉक्स है। जाहिर है दोनों अलग गिट निष्पादन योग्य पथ है। तो मैं सोच रहा हूं कि जेनकिंस किसी कारण से मेरे लिनक्स बॉक्स पर यह आदेश चलाता है या नहीं।

मैं केवल खिड़कियों दास बॉक्स पर चलने के लिए परियोजना सेटअप है और के रूप में यह ठीक बनाता है (इसलिए यह काम के लिए Git निष्पादन ढूँढने में सक्षम है)

किसी भी संकेत दिए गए कि ठीक काम करता है?

यह भी जानता है कि जेनकिन्स के लिए जिथब प्लगइन कैसे गुलाम मशीनों के साथ काम करता है (क्या यह दास में गिट की तलाश करता है या यह जहां जेनकींस रहता है, जहां यह स्रोत हो सकता है, हालांकि यह पता नहीं है कि समाधान क्या है वह अजीब मामला होगा?)

उत्तर

5

मैंने विंडोज़ नौकरी की मेरी गिट एससीएम परिभाषा में "अतिरिक्त व्यवहार" के रूप में "वर्कस्पेस का उपयोग करके बल मतदान" जोड़ने के आसपास एक काम करने की कोशिश की। यह मेरी समस्या हल करता है - सबसे अच्छा तरीका नहीं लेकिन प्रभावी।

यदि चुनाव लिनक्स नोड (मास्टर) पर चलता है लेकिन किसी भी तरह से यह तय करता है कि इसे मास्टर गिट कॉन्फ़िगरेशन का उपयोग करने के लिए मास्टर गिट कॉन्फ़िगरेशन का उपयोग करने की आवश्यकता है, तो लिनक्स मास्टर विंडोज गिट स्थान से गिट निष्पादित करने का प्रयास कर सकता है लिनक्स गिट स्थान (जो मेरी परियोजना में हो रहा है) का है। यह एक बग होगा, और मैं इस बग पर हैरान था, क्योंकि जेनकिंस गिट के कई इंस्टॉलेशन हैं जो लिनक्स और विंडोज गुलामों के विस्तृत मिश्रण का उपयोग करते हैं। मुझे इस तरह की एक बग से अवगत नहीं था, लेकिन "वर्कस्पेस का उपयोग करके बल पोलिंग" ने आपके लिए समस्या का समाधान किया, यह संकेत दे सकता है कि यह अधिक जांच के लिए एक क्षेत्र है।

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