Saturday, September 7, 2019

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.


No comments:

Categories

Kubernetes (24) Docker (20) git (13) Jenkins (12) AWS (7) Jenkins CI (5) Vagrant (5) K8s (4) VirtualBox (4) CentOS7 (3) docker registry (3) docker-ee (3) ucp (3) Jenkins Automation (2) Jenkins Master Slave (2) Jenkins Project (2) containers (2) create deployment (2) docker EE (2) docker private registry (2) dockers (2) dtr (2) kubeadm (2) kubectl (2) kubelet (2) openssl (2) Alert Manager CLI (1) AlertManager (1) Apache Maven (1) Best DevOps interview questions (1) CentOS (1) Container as a Service (1) DevOps Interview Questions (1) Docker 19 CE on Ubuntu 19.04 (1) Docker Tutorial (1) Docker UCP (1) Docker installation on Ubunutu (1) Docker interview questions (1) Docker on PowerShell (1) Docker on Windows (1) Docker version (1) Docker-ee installation on CentOS (1) DockerHub (1) Features of DTR (1) Fedora (1) Freestyle Project (1) Git Install on CentOS (1) Git Install on Oracle Linux (1) Git Install on RHEL (1) Git Source based installation (1) Git line ending setup (1) Git migration (1) Grafana on Windows (1) Install DTR (1) Install Docker on Windows Server (1) Install Maven on CentOS (1) Issues (1) Jenkins CI server on AWS instance (1) Jenkins First Job (1) Jenkins Installation on CentOS7 (1) Jenkins Master (1) Jenkins automatic build (1) Jenkins installation on Ubuntu 18.04 (1) Jenkins integration with GitHub server (1) Jenkins on AWS Ubuntu (1) Kubernetes Cluster provisioning (1) Kubernetes interview questions (1) Kuberntes Installation (1) Maven (1) Maven installation on Unix (1) Operations interview Questions (1) Oracle Linux (1) Personal access tokens on GitHub (1) Problem in Docker (1) Prometheus (1) Prometheus CLI (1) RHEL (1) SCM (1) SCM Poll (1) SRE interview questions (1) Troubleshooting (1) Uninstall Git (1) Uninstall Git on CentOS7 (1) Universal Control Plane (1) Vagrantfile (1) amtool (1) aws IAM Role (1) aws policy (1) caas (1) chef installation (1) create organization on UCP (1) create team on UCP (1) docker CE (1) docker UCP console (1) docker command line (1) docker commands (1) docker community edition (1) docker container (1) docker editions (1) docker enterprise edition (1) docker enterprise edition deep dive (1) docker for windows (1) docker hub (1) docker installation (1) docker node (1) docker releases (1) docker secure registry (1) docker service (1) docker swarm init (1) docker swarm join (1) docker trusted registry (1) elasticBeanStalk (1) global configurations (1) helm installation issue (1) mvn (1) namespaces (1) promtool (1) service creation (1) slack (1)