Jenkins is the most popular tool to do Continuous Integration and Continuous Delivery of your software:
- It’s free and open source
- It has a strong community with thousands of plugins you can use
- Jenkins is used in a lot of companies, from startups to enterprises
This course will teach you how to use Jenkins using the Jenkins DSL and Jenkins Pipelines (Jenkinsfile). It’s a new way of using Jenkins, rather than using freestyle projects. I call it using Jenkins, the DevOps way! I’ll explain you about infrastructure as code and automation to make sure you understand how Jenkins Pipelines fits within this new way of thinking.
I’ll show you how to integrate Jenkins Pipelines with popular software tools, like:
- Docker
- GitHub / Bitbucket
- JFrog Artifactory
- SonarQube
- Onelogin (Using SAML)
If you’re looking for a job in the DevOps space, Jenkins is a must have skill.
A coupon to get $10 free credits on DigitalOcean is provided within this course. You can use this coupon to install Jenkins on a DigitalOcean droplet.
Introduction
Introduction to the Jenkins Course
Practical information for the Jenkins course
Procedure document with practical information, installation manual, and links to other resources
This course is a bit different than other Jenkins courses around
- It has all to do with DevOps
- This course has a big focus on automation, ownership and reusability
- The developers are given the capability to automate their own jenkins build scripts by using Jenkins Pipelines
- Using docker, a closer dev-prod parity should allow you to build software the same way locally, as on the build servers
Introduction to Jenkins
Lecture explaining what Jenkins is
Part II of lecture explaining what Jenkins is
The Jenkins installation explained. Jenkins can be installed using docker on a DigitalOcean Droplet.
A demo of how to install Jenkins on a DigitalOcean Droplet using Docker
A lecture giving you an overview of what Docker is.
Building a NodeJS app
I will be using a NodeJS example application for our first job in Jenkins. This lecture explains why I'm using NodeJS.
How to build and deploy a NodeJS app with npm.
Building a NodeJS app in Jenkins with the NodeJS Plugin
This lecture explains how to package the NodeJS app we just built, as a docker image, and push it to Docker Hub.
Infrastructure as code and automation
This lecture gives an introduction to infrastructure as code and automation. It helps frame why you should be using the Jenkins Job DSL / Pipelines rather than freestyle projects.
Jenkins Job DSL
This lecture gives an introduction of the Jenkins Job DSL
A demo that shows how to use the Jenkins Job DSL with a NodeJS app
A demo of the Job DSL using docker build and publish functionality
Jenkins Pipelines
An introduction to the Jenkins Pipelines (using the Jenkinsfile)
What is the difference between Jenkins Pipelines and the Job DSL
A Jenkins Pipeline example explained, using Java and Maven
A demo of the Jenkins Pipeline using NodeJS
How to run the whole pipeline build in Docker containers
A demo showing you how you can run your whole Jenkins Pipeline in docker containers
Jenkins Integrations
This lecture shows you how to send email notifications in Jenkins
A demo of how to integrate email alerts when a job fails in Jenkins
A lecture explaining the integration of Jenkins with Slack
This demo shows you how to setup a slack notification that will send a message to a Slack channel when a build fails.
This lecture explains how you can integrate GitHub and BitBucket with Jenkins
This demo explains how to build a Gradle + Java project with the GitHub integration
This demo shows the same gradle project, but now on Bitbucket
Where to keep your Artifacts? A lecture on how to integrate Artifactory
A demo showing how to integrate JFrog Artifactory with Jenkins
Sometimes there are no plugins available for the integration you want, but there is still an option to write your own Custom API integration.
A demo on how the BitBucket API can be integrated within a Jenkins Pipeline.
If you want to continuously check on code quality, SonarQube should be integrated within Jenkins.
This demo shows you how to install Sonarqube on your DigitalOcean droplet
This demo explains how to scan your project and send the results to the SonarQube server.
Advanced Jenkins usage
How to scale Jenkins? You can add more worker nodes! This lecture explains you how and why.
The benefits and the best practices of using Jenkins worker nodes (Jenkins Slaves). The do's and don'ts
This demo shows you how to set up a slave using SSH on the slave.
Windows nodes can best be set up with JNLP. This demo explains you how to setup a windows slave and a Linux slave, both with JNLP.
The new Jenkins UI is called Blue Ocean. This lecture tells you everything about it.
This demo shows you how to activate and use Blue Ocean
This lecture explains the usage of ssh-agent within Jenkinsfiles. It's always best to use ssh-agent/credentials rather than manually putting the credentials/keys in place.
This demo shows you how to use the ssh-agent to make custom git calls to github/bitbucket.
Take into account these security best practices to keep your Jenkins secure.
This lecture explains the differences between authentication and authorization
A demo explaining how authorizations work in Jenkins
You can plugin authentication providers into Jenkins rather than saving the login and password in a local database. This lecture talks about OneLogin, LDAP, ActiveDirectory (AD), and SAML
A demo on how to integrate Onelogin with Jenkins using SAML
The end
Congratulations on completing the course
This bonus lecture showcases my other courses