Whenever my Jenkins gets notified about a new git commit to my repository foo, I get the following log/error response on the triggering client:
Scheduled polling of foo
No git consumers for URI ssh://git@localhost:9777/path/to/foo.git
This failed notification does not commence building. Using the manual "Build Now" commences building successfully.
Setup
- I have the Jenkins instance listening on
localhost:8666
. - I have the SSH daemon listening on
localhost:9777
. - Within Jenkins, I have a git-based Maven project:
-
- "Maven project name" is foo.
-
- "Git Repository URL" is
ssh://git@localhost:9777/path/to/foo.git
.
- "Git Repository URL" is
- In that bare repository, I have a hook file
hooks/post-receive
with content:
.
# this is file post-receive
curl http://localhost:8666/git/notifyCommit?url=ssh://git@localhost:9777/path/to/foo.git
This building-on-commit-notification used to work well. I have the feeling that it stopped working well once I moved from standard SSH port 22 to non-standard 9777.
What do I have to do to have a commit notification result in a successful build trigger?
Possibly relevant source code files:
Best Answer
Things to remember when connecting an hook to Jenkins:
Thick the
Poll SCM
option in the Build Triggers leaving the "schedule" textarea emptythe
url=xxx
parameter must match the "Repository URL" specified in the job configuration. If it is prefixed by ssh:// you should keep it in the notification callDon't forget to
push a change to the repo
you configured! To verify you have changes:http://jenkins-url:jenkins-port/job/JOB-NAME/scmPollLog/
should contain "Changes found" in the last line.Source: Git plugin docs