Jenkins-Build when a change is pushed to GitHub option is not working
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.
I had the same problem and solved it. The problem was that the URL had to end with a /
. Meaning:
http://<jenkinsurl>:8080/github-webhook/
✅
http://<jenkinsurl>:8080/github-webhook
❌
(Notice the missing /
at the end.)
Actually if you do the webhook settings from Jenkins -> Github plugin configuration
(mentioned above), you will still see webhooks get created in github. So, above two approaches basically doing the same thing.
I personally like it to create webhook from Github, because in this way you don't have to share or store github user info in jenkins.
Steps :
Login into Github (with Admin)
Go to the repository you want to hook with jenkins
- Click on settings tab -> webhooks & services
- Click on Add Webhook.
- Enter payload url : like : http://:8080/github-webhook/
- Select content type as json.
- you are done.
Now you do the changes and commit , you will see jenkins build get trigger automatically. Don't forget to do the settings in jenkins jobs to start the build when push code in github.