2014-09-18 3 views
7

Windows 슬레이브 컴퓨터가 연결된 jenkins 인스턴스가 있습니다. github에있는 작업이 실행 중이고 트리거가 있습니다. "변경 사항이 GitHub에 푸시 될 때 빌드"가 설정됩니다.Github-Jenkins 슬레이브에서 트리거 문제

github에 변경 사항을 적용 할 때 jenkins에서 트리거되는 빌드가 없습니다. 나는 확인하고 페이로드는 "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. jenkins 슬레이브 서비스가 관리자 권한으로 로그인하여 모든 권한을 갖도록 조정했습니다. 2. 내 기본 젠킨스 서버는 리눅스 박스이고 슬레이브 머신은 윈도우 박스입니다. 분명히 둘 다 다른 자식 실행 경로가 있습니다. 그래서 나는 젠킨스가 내 리눅스 박스에서 어떤 이유로이 명령을 실행하는지 궁금해하고있다.

나는 단지 윈도우 슬레이브 상자에서 실행하는 프로젝트 설정을 수행하고 잘 구축 (그래서 작업에 대한 자식 실행 찾을 수있다)

모든 포인터를 같이 그 잘 작동?

또한 jenkins 플러그인이 슬레이브 머신에서 작동하는 방법을 알고 있습니다 (슬레이브에서 git을 찾거나 젠킨스가있는 곳으로 이동합니까?) 그 이상한 사건이 될 것입니까?)

답변

5

"강제로 작업 영역을 사용하여 폴링"Windows 작업 내 SCM 정의 내 추가 작업 "으로 추가 작업을 시도했다.이 내 문제를 해결합니다 - 최선의 방법이 아닙니다. 그러나 효과적입니다.

폴이 Linux 노드 (마스터)에서 실행되지만 어떻게 든 마스터를 폴링하기 위해 Windows git 구성을 사용해야한다고 결정하면 Linux 마스터가 Windows git 위치에서 git을 실행하려고 할 수 있습니다 리눅스 git 위치 (내 프로젝트에서 일어나고있는 것)의. 그것은 버그가 될 것이고, 나는이 버그에 놀랐다. Jenkins git이 리눅스와 Windows 노예의 다양한 조합을 사용하는 설치가 많기 때문이다. 나는 그런 버그에 대해 알지 못했지만, "작업 공간을 사용하여 강제로 폴링"이 문제를 해결 했으므로 더 많은 조사를위한 영역임을 암시 할 수 있습니다.