Hands-On Continuous Integration and Delivery
Build and release quality software at scale with Jenkins, Travis CI, and CircleCI
Jean-Marcel Belmont
BIRMINGHAM - MUMBAI
Hands-On Continuous Integrationand Delivery
Copyright 2018 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Commissioning Editor: Gebin George
Acquisition Editor: Rohit Rajkumar
Content Development Editor: Ronn Kurien, Devika Battike
Technical Editor: Aditya Khadye
Copy Editor: Safis Editing
Project Coordinator: Jagdish Prabhu
Proofreader: Safis Editing
Indexer: Priyanka Dhadke
Graphics: Tom Scaria
Production Coordinator: Aparna Bhagat
First published: August 2018
Production reference: 1270818
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78913-048-5
www.packtpub.com
mapt.io
Mapt is an online digital library that gives you full access to over 5,000 books and videos, as well as industry leading tools to help you plan your personal development and advance your career. For more information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical eBooks and Videos from over 4,000 industry professionals
Improve your learning with Skill Plans built especially for you
Get a free eBook or video every month
Mapt is fully searchable
Copy and paste, print, and bookmark content
PacktPub.com
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at service@packtpub.com for more details.
At www.PacktPub.com , you can also read a collection of free technical articles, sign up for a range of free newsletters, and receive exclusive discounts and offers on Packt books and eBooks.
Contributors
About the author
Jean-Marcel Belmont is a software engineer with a passion for automation and continuous integration. He is heavily involved in the open source community and frequently writes workshops on many different software development topics. He maintains a couple of meetup groups where he advocates clean code patterns and software craftsmanship.
I would like to first and foremost thank my loving and patient wife, Christine, my son, Michael, and my daughter, Gabriella, for their support, patience, and encouragement throughout the long process of writing this book. Thanks also to my close friends and family for their encouragement throughout the book.
About the reviewers
Hai Dam works as a DevOps Engineer in Netcompany, Denmark. His DevOps toolchain are Jenkins, CircleCI, ELK, AWS, and Docker.
Craig R Webster has delivered projects for clients of all sizes, ranging from small startups such as Orkell, Picklive and Tee Genius, through Notonthehighstreet, the UK Government, and the BBC. With more than 15 years of experience developing and deploying web applications, delivery pipelines, automation, and hosting platforms, Craig is able to take point on any technical project and ensure it is delivered on time, and on budget.
Packt is searching for authors like you
If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today. We have worked with thousands of developers and tech professionals, just like you, to help them share their insight with the global tech community. You can make a general application, apply for a specific hot topic that we are recruiting an author for, or submit your own idea.
Preface
Writing modern software is hard because there are many groups involved in the delivery of software, including developers, QA, operations, product owners, customer support, and sales. There needs to be a process by which the development of the software is done in an automated way as it is being built. The process of continuous integration and continuous delivery will help ensure that the software that you deliver to your end users is of the highest quality and has been through a series of checks in a CI/CD pipeline. In this book, you will learn how to use Jenkins CI and how to write freestyle scripts, plugins, as well as how to use the newer Jenkins 2.0 UI and pipelines. You will learn about Travis CI in terms of the UI, the Travis CLI, advanced logging and debugging techniques, and best practices with Travis CI. You will also learn about Circle CLI in terms of the UI, the Circle CLI, advanced logging and debugging and best practices with CircleCI. Throughout the book we will talk about concepts such as containers, security, and deployment, among others.
Who this book is for
This book is meant for system administrators, QA engineers, DevOps, and site reliability engineers. You should have an understanding of Unix programming, basic programming concepts, and version control systems such as Git.
What this book covers
, CI/CD with Automated Testing , introduces the concept of automation and the explains the importance of automation compared to manual processes.
, Basics of Continuous Integration , introduces the concept of continuous integration, explains what a software build is, and covers CI build practices.
, Basics of Continuous Delivery , introduces the concept of continuous delivery and in particular explains the problem of delivering software, configuration management, deployment pipelines, and scripting.
, The Business Value of CI/CD , covers the business value of CI/CD by explaining problems with communication, such as the ability to communicate pain points to team members, sharing responsibilities among team members, knowing your stakeholders, and demonstrating why CI/CD is important.
,
Next page