-
Bug
-
Resolution: Cannot Reproduce
-
Minor
-
None
-
Jenkins: 1.651.2
Git client plugin: 1.19.6
Git plugin: 2.4.4
Github API plugin: 1.75
Github plugin: 1.19.1
Jenkins server installed on Windows 2008. Being accessed from linux chromium browser (primarily).
Jenkins slave installed on different Windows 2008 system. Windows slave, version 2.53.3. This slave system has git-client version 2.8.3.windows.1 installed.Jenkins: 1.651.2 Git client plugin: 1.19.6 Git plugin: 2.4.4 Github API plugin: 1.75 Github plugin: 1.19.1 Jenkins server installed on Windows 2008. Being accessed from linux chromium browser (primarily). Jenkins slave installed on different Windows 2008 system. Windows slave, version 2.53.3. This slave system has git-client version 2.8.3.windows.1 installed.
I tried looking around for open/in progress issues (since I'm using the latest versions) but couldn't find anything.
Background:
I have configured our github repository with a Jenkins (Github plugin) service. So that it sends push notifications to my Jenkins server. This works. I have also configured github account, git-client, and jenkins job to use ssh keys for cloning the git repository. This works too.
Problem:
When pushing a change to the repository the github hook log shows:
Started on Jun 1, 2016 12:34:12 PM
Using strategy: Default
[poll] Last Built Revision: Revision 91b9f11b4d935ab670506c08a3a3c8a308dec95e (refs/remotes/origin/master)
using GIT_SSH to set credentials
ERROR: Failed to record SCM polling
java.lang.RuntimeException: ssh executable not found. The git plugin only supports official git client http://git-scm.com/download/win
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getSSHExecutable(CliGitAPIImpl.java:1648)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.createWindowsGitSSH(CliGitAPIImpl.java:1654)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1372)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1349)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1340)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.getHeadRev(CliGitAPIImpl.java:2441)
at hudson.plugins.git.GitSCM.compareRemoteRevisionWithImpl(GitSCM.java:627)
at hudson.plugins.git.GitSCM.compareRemoteRevisionWith(GitSCM.java:571)
at hudson.scm.SCM.compareRemoteRevisionWith(SCM.java:381)
at hudson.scm.SCM.poll(SCM.java:398)
at hudson.model.AbstractProject._poll(AbstractProject.java:1446)
at hudson.model.AbstractProject.poll(AbstractProject.java:1349)
at com.cloudbees.jenkins.GitHubPushTrigger$1.runPolling(GitHubPushTrigger.java:84)
at com.cloudbees.jenkins.GitHubPushTrigger$1.run(GitHubPushTrigger.java:110)
at hudson.util.SequentialExecutionQueue$QueueEntry.run(SequentialExecutionQueue.java:119)
at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Additional Configuration Background / Observations:
My job is configured to use a specific label/slave. That slave is configured with Node properties -> Tool Locations -> Pointing to an git client configured under Manage Jenkins -> System Configuration -> Git -> Git installations. This field is used to point to the specific absolute path up to and including the git.exe binary.
But, this doesn't seem to be listened to when it is being triggered via the service. It does listen to this setting when manually running the job. I say this because the name I was using was NOT "Default". The name "Default" is present and uses a different path. Default is set to the path where the git client on my Jenkins server exists so that it wouldn't reflect errors when viewing the properties of the job.
WORKAROUND:
If I configure the Git -> Git installation -> Default to use the location where the git client can be found on my slave then triggering the job based on a push to the git repo works successfully. I've tried removing "Default" completely and this also doesn't work.