In agile development practices, developers need to integrate their work frequently to fix bugs or to create a new feature or functionality. Jenkins is used specifically for continuous integration, helping to enforce the principles of agile development.
Jenkins is one of the most popular and leading Continuous Integration servers on the market today. This popularity is because, it is an open source project and a very flexible tool, which you can easily use it to automate all of the steps of your software delivery process on any platform. It is designed to maintain, secure, communicate, test, build, and improve the software development process. Setting up Jenkins and running build jobs is not enough for a production infrastructure.
This comprehensive 2-in-1 course a modular and highly interactive approach, providing a general introduction and explanatory, hands-on content. You’ll start off with configuring Jenkins effectively to work with Git in building and testing your software. You’ll discover the process of using Jenkins to build, test, and package Java applications. You’ll also learn about the extensible features of Jenkins with automated deployment on a cloud platform.
By the end of the course, you’ll be able to set up the stage for a DevOps culture by learning Continuous Integration, automating your Jenkins projects and getting continuous feedback for your upstream & downstream projects!
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Effective Jenkins: Getting Started with Continuous Integration, covers Continuous Integration, automate your Jenkins projects and get continuous feedback for your upstream & downstream projects. In this first volume, you will understand the key concepts of CI and CD, as well Continuous Deployment. Get started with Jenkins by installing and configuring a Master and Node server. Once this is done, understand the main parts of Jenkins and create different types of Jenkins projects to automate everything that you want. You’ll finish the section by looking to a Java web project and create the necessary steps for build and test it, therefore you can implement it to your real project.
The second course, Hands-On Continuous Integration and Automation with Jenkins, covers building, testing, and packaging applications with Jenkins in this hands-on video course supported by practical real-world examples. This video course delves into the installation of the required software dependencies and libraries and demonstrates the workflow you’ll need to follow to perform continuous integration for a sample application. From there, you will learn how to integrate code repositories and build tools in order to build code pipelines to implement both continuous integration and continuous delivery. Finally, you will also learn to automate deployment to a cloud platform such as AWS.
By the end of the course, you’ll be able to set up the stage for a DevOps culture by learning Continuous Integration, automating your Jenkins projects and getting continuous feedback for your upstream & downstream projects!
About the Authors
Rodrigo Russo is a Certified Jenkins Engineer and has 14+ years’ experience in software development with different programming languages and technologies in different countries (Brazil, US, Portugal, Germany and Austria) and projects in companies ranging from a financial institution to game and e-commerce ventures including Walmart .com, Good game Studios and HERE. He is an enthusiastic practitioner of agile methodologies, Continuous Delivery and DevOps, with large-scale adoption experience. He is always seeking to optimize the software development life cycle through automation, process improvements, developing new tools and techniques. Rodrigo holds a B.S. in Computer Science and a post-graduate in Software Engineering.
Sandro Cirulli is a certified Jenkins engineer, co-maintainer of XSpec, an open source unit testing framework for XML technologies, and co-organizer of DevOps Oxford Meetup. Sandro currently works as Lead Language Technologist in the Dictionaries department of Oxford University Press (OUP) where he’s in charge of system administration, cloud, and DevOps. Sandro holds an MS degree in Computer Science from Oxford Brookes University and blogs at sandrocirulli .net.
Effective Jenkins: Getting Started with Continuous Integration
This video provides an overview of the entire course.
In this video, we will understand what Continuous Integration is and why it is important, see its key practices and how to practice it when you change the source code of our application.
What is Continuous Integration?
Understand the key practices of Continuous Integration
Understand a workflow of changing code practicing Continuous Integration
This video aims to explain what is Continuous Delivery, its fundamentals and the Deployment pipeline.
What is Continuous Delivery?
Understand the pillars of Continuous Delivery
Understand the Deployment pipeline
This video will explain the differences between Continuous Delivery and Continuous Deployment.
Introduction to the software release process
Understand Continuous Deployment
Understand the difference between Continuous Delivery and Continuous Deployment
In this video, we will expand the differences between CI, CD and Continuous Deployment in the software development life cycle.
Explain the boundaries of each practice
Define the journey among these practices
In this video, we will understand what is Jenkins and its architecture.
What is Jenkins and for what can I use it?
Understand the Jenkins architecture
In this video, we are going to create a virtual machine with Linux and install Jenkins step-by-step.
Prepare our isolated environment with vagrant and VirtualBox
Install and configure Jenkins to start creating the projects
In this video, we are going to create our first Jenkins project and understand the key elements of the Jenkins Dashboard.
Create the first Jenkins project, schedule a build and understand the project interface elements
Understand the Jenkins Dashboard and its elements
In this video, we will understand the Jenkins global configuration, the place where you can define global setting to all Jenkins projects.
Understand the Jenkins global settings
Explore the Jenkins global tool configuration and install a JDK
In this video we will learn how to deal with it on Jenkins. Security is essential to control the users and its permission.
Understand the Jenkins Realm, responsible for user authentication and add a new user
Explore the authorization strategy by configuring the matrix-base security
Grant permissions to the users
In this video, Jenkins is heavily based on plugins, it can integrate with thousands of tools and services from the plugins, and we are going to see how to do it.
Explore the Jenkins Plugin management view
See updates, available and installed plugins
Explore the advanced tab of plugins
This video will focus on How to add and configure Jenkins build nodes?
Create ssh-key for the Jenkins user in the Jenkins Master machine and configure Jenkins credentials
Create a new virtual machine and configure ssh access
Configure Jenkins and the project to use the new build node
In this video, Jenkins has different types of projects or jobs and we are going to explore the difference between then.
Copy existing Jenkins projects and create new ones on different type of projects
In this video we are going so explore how Jenkins deal with that and how to define a retention policy to keep the relevant builds.
Configure a project to trigger a build automatically based on a schedule
Configure a project to trigger a build automatically in a specific date and time
Configure the Jenkins retention policy
In this video we configure Jenkins to send e-mail notification on broken and fixed builds.
Setup the SMTP server on the Jenkins global configuration.
Configure the project/job to send e-mail notification on broken builds
Configure the project/job to send e-mail notification on fixed builds
In this video, Part of the CI foundations is to maintain a single source repository. This video you explain how to integrate Jenkins with Github to use git repositories.
Create a git repository on Github
Integrate Jenkins with Github
This video will introduce the Sprint PetClinic, an open source sample project to be used in the next videos. Nothing better than using a sample project to understand how Jenkins works with a real life project.
Introduction to Spring PetClinic project
Build the project locally
Install maven on Jenkins and create a job to build the PetClinic project
In this video, Using the java web project, we are going to create a CI build pipeline in Jenkins based on Upstream and Downstream jobs.
Create a CI build pipeline
Configure the initial job in the pipeline to trigger on every change in the source code.
This Video will show you two different possibilities to give enough visibility of the status of the builds for the development team. Visualizing the state of the mainline build is essential to practice continuous integration and get people embracing it.
Install the build pipeline plugin
Install the build monitor plugin
Hands-On Continuous Integration and Automation with Jenkins
This video will give you an overview about the course.
This video describes what Jenkins is and how it used for.
Describe what is Jenkins
Describe what Jenkins is used for
This video shows how to install Jenkins on Windows.
Describe options to install Jenkins on Windows
Download the Windows package installer
Install from package installer
This video shows how to install Jenkins on macOS.
Describe options to install Jenkins on macOS
Install Jenkins using brew
This video shows how to install Jenkins on Linux.
Describe options to install Jenkins on Linux distributions
Install Jenkins on Ubuntu
This video shows how to install Jenkins with Docker.
Describe what is Docker
Install Jenkins with Docker
This video gives an overview of the Jenkins dashboard and admin console and introduces key concepts and terminology.
Explore the Jenkins dashboard
Explore the Jenkins admin console
Learn key terminology
This video explores configuration options in a job.
Configure a job
Run a job
Learn key terminology
This video is a step-by-step guide to create your first Jenkins job.
Create your first job
Configure your first job
Run your first job
This video shows how to extend the job created in video 2.3.
Pull code from GitHub
Pass a parameter to a build
Build the job periodically
This video explains what Continuous Integration, Continuous Delivery, and Continuous Deployment are, how they compare, and which benefits they bring
Learn Continuous Integration
Find out Continuous Delivery and Continuous Deployment
Understand Compare and contrast
This video shows the CI workflow, introduces the Maven build tool, and implements the first phase of the CI workflow.
See CI workflow
Maven build tool
Implement first phase of CI workflow
This video explains the different types of tests and implements the testing part of the CI workflow.
Why testing
Explain the types of tests
Implement testing workflow
This video shows the different types of notifications, introduces the information radiator and extreme feedback, and implements the notification part of the CI workflow.
Explain the types of notifications
Information radiator and extreme feedback
Implement notification workflow
This video explains what Pipeline as Code means, how pipelines are implemented in Jenkins 2, and what are the benefits of using Pipelines.
Explain Pipeline as Code
How pipelines are implemented in Jenkins 2
Benefits of using pipelines
This video explains what a Jenkinsfile is, shows the differences between declarative and scripted pipelines, and creates and runs simple pipeline jobs.
Learn what a Jenkinsfile is
Declarative versus scripted pipelines
Create and run pipeline jobs
This video gives an overview of the CD pipeline, shows the web application deployed via the CD pipeline, and introduces Docker.
CD pipeline overview
Web application used in the deployment
Intro to Docker
This video shows the Dockerfile used by the CD pipeline, the Python code of the web application, and Docker commands to build an image and run a container.
Learn what a Dockerfile is
Python code of the web application
Docker commands
This video shows how to create a pipeline job in Jenkinsfile and how to create a Jenkinsfile with steps to build a web application and de-ploy it to a development environment.
Jenkinsfilewith steps to build and deploy to dev
Create and run the pipeline job
Access web application on dev environment
This video adds unit tests for the Python code, deploys the application to a staging environment, and tests the deployments with user acceptance tests.
Add steps to the pipeline
Analyze unit and user acceptance tests
Deploy to a staging environment
This video completes the CD pipeline with a step to manually approve the deployment and deploy to the live environment and shows additional resources to write pipeline scripts.
Add step to approve deployment
Deploy and test the live environment
Resources to write pipeline scripts
This video explains what is Blue Ocean, which advantages it brings, and its main features.
What is Blue Ocean
See the advantages of Blue Ocean
Overview of Blue Ocean
This video shows how to create, configure, and run a multibranch pipeline using Blue Ocean’s visual editor.
Create a multi branch pipeline
Create a personal access token
Run and visualize the pipeline
This video explains what a pull request is and shows how to create and debug a pull request in a multibranch pipeline.
What is a pull request
Create a pull request
Debug a pull request in the multibranch pipeline
This video gives an introduction to AWS, explains the master/slave architecture on Jenkins, and illustrates the outcome of this section’s practical part.
Introduce to AWS
Understand the master/slave architecture in Jenkins
Learn about Jenkins build farm
This video introduces AWS resources and jargon and shows how to create a VPC and security group and launch an EC2 instance.
Introduce AWS jargon
Create a VPC and a security group
Launch an EC2 instance
This video shows how to assign an Elastic IP address to an EC2 instance, access an EC2 instance via ssh, and install Jenkins on AWS.
Assign elastic IP address
Access EC2 instance via ssh
Install Jenkins on AWS
This video introduces AWS concepts like IAM policy, IAM user, and AMI, and shows how to add AWS credentials to Jenkins and install and configure the EC2 plugin.
Create IAM policy and user
Add AWS credentials in Jenkins
Install and configure the EC2 plugin
This video shows how to configure and run a job on a slave node.
Configure job on slave node
Run job on slave node
Stop and clean up AWS resources