Conquer continuous delivery with GitHub and Jenkins

GitHub and Jenkins together help make agile development real, enabling you to automate the build process and focus on test-first development

Getting a continuous delivery model right needs more than a structured way of handling development. It also needs the appropriate tools for managing test and build.

That’s where the Jenkins continuous integration server comes in. It works with your choice of source control, your test harnesses, and your build server. It’s a flexible tool, initially designed for working with Java, but has now been extended to support Web and mobile development and even to build Windows applications.

Jenkins is perhaps best thought of as a switching network for shunting files through a test-and-build process. It responds to signals from the various tools you’re using -- thanks to a library of more than 1,000 plug-ins. These include tools for integrating Jenkins with both local Git instances and the cloud GitHub service, allowing you to extend a Gitflow continuous development model into your build and delivery processes.

Using a tool like Jenkins is as much about adopting a philosophy as it is about implementing a build process. Once you commit to continuous integration as part of a continuous delivery model, you’ll run test and build cycles as soon as code is delivered to your source control release branch -- and deliver it to users as soon as it’s in the main branch.

This process requires a link between your Git source control and Jenkins’ automation. That link can be established by polling the appropriate Git branches for updates at regular intervals, or by receiving a notification from Git when the code has been updated and is ready for integration. The first approach is relatively simple; it merely requires access to your source control system. The second relies on notifications delivered by a plug-in.

Once you install the Jenkins plug-ins (either for Git or GitHub) you can use it with your Git-hosted source code. If you’re using GitHub, all you need is the URL of the applicable project. Once that’s done, you can set up access to GitHub’s webhook URLs in Jenkins.

To continue reading this article register now