What you’ll learn

  • The basics of Test Automation, CI, CD, and DevOps
  • fundamentals of Source Control (Git), Docker, and Jenkins
  • How to install and setup Git, Docker, Docker Compose, and Jenkins
  • An Introduction to Java Build Concepts and Gradle
  • How to use Gradle to check, test, and publish Java libraries
  • How to use Jenkins to automate CI/CD based on Gradle using freestyle jobs, scripted pipelines, and declarative pipelines


With so many terms, techniques, and tools available, navigating how about building and delivering software can be overwhelming. This course picks a path through that maze, specifically focused on Java, and walks through a set of those options for delivery. Specifically using a combination of Docker, Jenkins, Git, and Gradle. Every aspect of this course also comes with a Git repository that contains both details and the examples being discussed.

Learners can follow along by running their own development environments for executing the examples, or just use this as a deep-dive explanation into the inner workings of Java-Jenkins-Gradle delivery. Either way, let working code be your guide. The course structure starts with setting up a basic development environment, and ends with using a Jenkins declarative pipeline to   execute a Gradle build using the Java, Maven, Jacoco, and PMD plugins, that on the pass of all the quality gates publishes the resulting Java Library to a Maven Repository.

It additionally covers the concepts of containerization, configuration as code, static code analysis, unit testing, code coverage, and pipelines as code. The course is otherwise divided into three sections:

(1) Infrastructure

  • Git via Github – Setting up Git so that you can use SSH to get the examples.
  • Docker and Docker Compose – Installing Docker and Docker Compose to be able to run containers locally.
  • Jenkins via Docker Compose – Running Jenkins locally in a container.

(2) Building Java

  • Building Java 101 – The basics of how Java code is turned into a Jar.
  • Gradle and the Java Plugin – Using the Java Plugin to test and build a Jar.
  • Gradle and Java Code Coverage – How to generate code coverage for unit testing, and set a quality gate.
  • Gradle and Java Static Code Analysis – How to run PMD, and set a quality gate.
  • Gradle and Java Library Publishing – How to publish a Jar to a Maven Repository.

(3) Jenkins Automation

  • Freestyle Job – Building, Testing, and Delivering the Jar using a Freestyle Job.
  • Scripted Pipeline – Building, Testing, and Delivering the Jar using a Scripted Pipeline.
  • Declarative Pipeline – Building, Testing, and Delivering the Jar using a Declarative Pipeline.

Link description