Jenkins is running on localhost. I have my repository in GitHub. I have the option to 'Build when a change is pushed to GitHub' checked.
When I click 'Build Now', build is done successfully, no issues there. But when am committing code to my repository, auto build is not happening. I can access GitHub from my system as the repository is public and I believe even Jenkins should be able to detect it. I know there is a polling option but I want Jenkins to build when change is detected in repository(as this is what we have been trying to achieve).
Configuration:
Jenkins 1.615
Git Plugin 2.3.5
Git Client Plugin 1.17.1
————————————————————————————————————————————
EDIT: "Build when a change is pushed to GitHub" option has been renamed to "GitHub hook trigger for GITScm polling" in most recent version of GitHub plugin. (thanks to @smrubin's feedback.)
I suspect you missed the webhook url
.
Besides checking the Build when a change is pushed to GitHub
option, you should also add the webhook url into your Github repository to get the Auto trigger mechanism to work and here is how:
Go to your Github repository:
Settings--> Webhooks&Services-->Service--> Add Services--> Choose "Jenkins (GitHub plugin)"
Then fill in the Jenkins hook url
with your jenkins url like this:
http://your_jenkins_url/github-webhook/
And, VERY IMPORTANT, since you are installing your jenkins server in your localhost, please be aware that you shouldn't fill in above Jenkins hook url like http://localhost:8080/github-webhook/
because Github is not able to recognize localhost
or 127.0.0.1
or 192.168.*.*
.
Either you should use an externally accessible DNS name or an IP address, which can be recognized by Github.