Github-Jenkins Trigger проблем с подчинен

Имам екземпляр на jenkins, който има прикачена подчинена машина на Windows. Също така имам изпълнявана работа, която се намира в github и имам зададен тригер - „Изграждане, когато промяната е насочена към GitHub“.

докато натискам промяна в github, няма задействана компилация на jenkins. Проверявам и виждам, че полезният товар се прехвърля към jenkins в „Github hook log“, но получавам следната грешка:

 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 slave влиза като администратор, така че да има всички разрешения. 2. Моят сървър на jenkins по подразбиране е linux кутия, а подчинената машина е windows кутия. Очевидно и двете имат различен изпълним път на git. Така че се чудя дали jenkins изпълнява тази команда на моя linux кутия по някаква причина.

Имам настройката на проекта да се изпълнява само на подчинената кутия на Windows и това работи добре, тъй като се изгражда добре (така че може да намери изпълнимия файл на git за задачата)

Някакви насоки?

Също така някой знае ли как плъгинът за github за jenkins работи с подчинени машини (търси ли git в подчинения или отива до мястото, където се намира jenkins, тъй като това може да е източникът, въпреки че няма представа какво би било решението за този странен случай бъда?)


person Scooby    schedule 18.09.2014    source източник


Отговори (1)


Опитах да заобиколя добавянето на „Принудително анкетиране с работно пространство“ като „Допълнително поведение“ в моята git SCM дефиниция на задачата на Windows. Това решава проблема ми - не е най-добрият начин, но ефективен.

Ако анкетата се изпълнява на Linux възела (главния), но по някакъв начин реши, че трябва да използва конфигурацията на Windows git, за да анкетира главния, това може да накара главния Linux да се опита да изпълни git от местоположението на Windows git, вместо от Linux git местоположение (което се случва в моя проект). Това би било грешка и аз бях изненадан от тази грешка, тъй като има много инсталации на Jenkins git, които използват широка комбинация от подчинени устройства на Linux и Windows. Не знаех за такъв бъг, но тъй като „Принудително анкетиране с работно пространство“ разреши проблема за вас, това може да подсказва, че това е област за повече разследване.

person Scooby    schedule 22.09.2014