Continuous Integration Automation: Webhook on GitHub notify Jenkins

Hello Guys, Jenkins CI/CD enthusiast,

In this post, I would like to discuss the implementation of Jenkins Continuous Integration automatic build triggers. Where Jenkins master will be stay connected with the GitHub server with an API token based authentication. To connect with GitHub server we need a personal access token.

Webhook for GitHub and Jenkins integration

  1. Create token credentials
  2. GitHub server configuration

Webhook is a wonderful solution that will keep track of changes that made to the GitHub repo and notify the Jenkins Master. If we create the item or freestyle project will be triggered automatically.

Create token credentials 

Login into the Jenkins console, Click on the left pane - "Manage jenkins" link. Select the "System Configure" navigates to the new page where you need scroll down till you found the GitHub section.
First we will create the token, look for the "Advanced" button on the rightside. Additional actions: 'Convert login and password to token'.
Select the radio button: "From login and password" which prompt for entering the values for the Login, password that used for GitHub where you have repo. Then use the 'Create token creentials' button at the right end.

Create Token for GitHub on Jenkins
Now the tokens are generated we are ready to connect with the GitHub server. move upwards and enter the following values:


  • Your GitHub profile used for connecting
  • API URL don't change this 
  • Credentials select from the dropdown, where you can find the recently created Token for GitHub - Selected
  • Click on the Test connection button will produce the result of connectivity 
  • Tick mark the 'manage hooks'



GitHub Server configuration on Jenkins

GitHub Configuration for Webhook

The following simple steps will be enables you to get the webhook on the GitHub that connected to Jenkins Master

  1. Log in to your GitHub
  2. The top right corner you can find your profile link from that menu select 'Settings'.
  3. In the left pane at the bottom, Select the 'Developer Settings'
  4. The new page for 'Developer Settings' will have three options, Select 'Personal access tokens' from the menu.

Personal access tokens on GitHub

Now we all set to go for testing the Webhook connectivity with Jenkins

Create a freestyle project for Webhook


On the Jenkins console create new freestyle project
Name it as GitHub-webhook
Project type: Freestyle project
Click on Ok button

Jenkins Project for GitHub Webhook

Source Code Management


Select the Git
Jenkins Source Code management

Build Triggers

Select GitHub hook trigger for GITScm polling

Jenkins Build Trigger
In the Build tab
Select the Execute shell

enter the stuff to know that build triggered in my example used the cat the README.md file which is targeted to modify.

Jenkins build section for CI automation


Save the Jenkins Project.

Go to the GitHub page

Modify the code in the Git repository,

added a line in the README.md file


Automatic Build Triggers

In the Jenkins now the job will be triggered automatically

Jenkins Build automatic triggered and the console output 


Here is the conclusion that Webhook is simple mechanism that will helps Jenkins get notified with code changed in the GitHub.


Comments

Popular posts from this blog

Ansible 11 The uri module with examples

Jenkins Active choices parameter - Dynamic input

DevOps Weapons