Pranoday Pramod Dingare
CI/CD Pipeline Using Jenkins Unleashed
Solutions While Setting Up CI/CD Processes
The Apress logo.
Pranoday Pramod Dingare
Pune, Maharashtra, India
ISBN 978-1-4842-7507-8 e-ISBN 978-1-4842-7508-5
https://doi.org/10.1007/978-1-4842-7508-5
Pranoday Pramod Dingare 2022
Standard Apress
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
The publisher, the authors and the editors are safe to assume that the advice and information in this book are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or the editors give a warranty, express or implied, with respect to the material contained herein or for any errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
This Apress imprint is published by the registered company APress Media, LLC, part of Springer Nature.
The registered company address is: 1 New York Plaza, New York, NY 10004, U.S.A.
I would like to dedicate this book to my parents, to my lovely son, to my wife, and to my role models from the Dingare family, for being my eternal sources of inspiration
Introduction
This book will help readers understand continuous integration (CI), continuous delivery, and continuous deployment (CD) with Jenkins. These processes allow users as well as administrators to catch problems as soon as they are injected into software systems.
This book starts with an introduction to Jenkins and covers its architecture and role in CI/CD. The basics are covered, including installing and configuring Jenkins. Tool configuration and plugins are discussed as well as available security measures such as credentials. Readers will learn what is meant by jobs in Jenkins, including their types, sections, and much more. The book explains Java API: projects, jobs, and configuration. The chapters take you through creating pipelines, their role in managing web apps, and distributed pipelines. There are lot of examples and scenarios included to explain the workings of the distributed version control system called Git and working with it using different authentication techniques like SSH. The book also covers unit testing with TestNG as well as end-to-end testing using Selenium Python as part of building a lifecycle and setting up Jenkins on different physical and Docker environments. It also explains Jenkins integration with cloud environments such as AWS. This book covers how to create reusable libraries for use in Jenkins pipelines and how to control Jenkins servers using Jenkins CLI and REST APIs.
The book helps you understand CI/CD implementation using Jenkins from scratch in your projects and prepares you for end-to-end DevOps practices.
What You Will LearnApply Jenkins to create end-to-end pipelines
Integrate Jenkins with AWS, Docker, Git, and many more tools
Use Selenium automation for end-to-end testing
Create distributed pipelines
Who Is This Book For
This book is best suited for developers and test automation professionals who are involved in creating CI/CD pipelines as well as prospective DevOps aspirants who want to make their way as professionals.
Acknowledgments
It has been one of my oldest dreams to write a book of my own. First of all, I would like to thank Apress in helping me find the author inside and helping me achieve this dream. I would like to extend a sincere thanks to my acquisition editor, Spandana Chatterjee, for such a nice proposal and for being the first person to trust my writing skills. We had countless discussions about the content to be presented in the book and Spandana made this an excellent book. I am sure their suggestions and feedback will help me become a much better author. Thank you also to Laura Berendson for being such a nice mentor and giving me the confidence when I needed it. I would like to thank Mark Powers for tolerating my writing mistakes and helping me make this book better with his expertise and suggestions. Thanks to Divya Modi for guiding me through this process and making me comfortable.
I am thankful to the HR department, the executive management, the team leaders, and all my colleagues from Magic Software Enterprises for encouraging me throughout this journey.
A special thanks to my father Pramod Dingare and mother Rajani Dingare for always encouraging me to take different paths in life and for supporting me when I was trying to make my way as an actor, software professional, trainer, and now as an author. Thanks to my wife Aruna Dingare for tolerating my busy writing schedule and helping with her MS Word skills when necessary. Thanks to my lovely son Rugved Dingare for being my source of energy, which I needed dearly throughout this writing journey.
I would like to thank the entire Dingare family for leading by example and inspiring me throughout my life since childhood.
I would like to thank countless authors who unknowingly inspired me to pursue this dream of being author one day!
Last but definitely not the least thanks to all my students for helping me grow as a constant learner.
Table of Contents
About the Author
Pranoday Pramod Dingare
A photo of Pranoday Pramod Dingare.
is a certified software testing professional with more than 15 years of experience in software testing, including more than 10 years in automation testing. Pranoday has been leading test automation of mobile applications for the last eight years and has been involved in test automation tools evangelism, R&D, proof of concept, and pilot projects. He has worked as a freelance test automation consultant for various startups and mid-sized IT companies from India and abroad. Pranoday's open-source test automation tools have successfully replaced licensed automation tools, leading to major savings. He is responsible for incorporating DevOps practices into test automation processes of organizations by implementing DevOps tools such as Jenkins, Gitlab, Nexus, Docker, etc. He has recently shifted into full-time DevOps profile and has been working as a Lead DevOps professional since last 1 year. He has implemented various DevOps tools like Dockers, Maven, Kubernetese, Git, Nexus, Azure DevOps, AWS, SonarQube, Jenkins etc. and has been instrumental in automating various applications build and deployment processes.