O'Reilly logo
live online training icon Live Online training

Getting started with continuous integration (CI)

An introduction to key concepts, mechanisms, and strategies

Brent Laster

Continuous integration, continuous delivery, and continuous deployment. . .If you do any work in the area of software delivery, you'll encounter these terms on a regular basis. But many are still unsure exactly what each of these processes does for your product development and release cycles.

In this three-hour hands-on training, Brent Laster explains what continuous integration (CI) really boils down to, explores the practices are associated with it, and details available tooling you can use to implement CI. By the time you're through, you’ll have a firm working knowledge of CI trade-offs and best practices to help you release high-quality software to customers frequently and reliably.

What you'll learn-and how you can apply it

By the end of this live, online course, you’ll understand:

  • The terminology around continuous concepts, in particular continuous integration (CI)
  • How CI plays a key role in software development and DevOps practices
  • How to use best practices for implementing and working with CI

And you’ll be able to:

  • Implement basic CI in your own projects
  • Apply CI in a software development or DevOps environment

This training course is for you because...

  • You're a DevOps engineer who wants to learn how to implement a continuous delivery model.
  • You're a software developer who wants to take advantage of continuous ideas and implementations.
  • You're a software manager who needs to manage a continuous delivery environment.

Prerequisites

A machine with VirtualBox installed (Download and start the preconfigured course VM image prior to the training to ensure it works; follow the instructions to complete setup and download course labs.)

Recommended preparation:

About your instructor

  • Brent Laster is a global trainer, author, and speaker on open source technologies as well as a senior R&D manager at a top technology company. He has been involved in the software industry for more than 25 years, holding various technical and management positions.

    Brent has always tried to make time to learn and develop both technical and leadership skills and share them with others. He believes that regardless of the topic or technology, there’s no substitute for the excitement and sense of potential that come from providing others with the knowledge they need to accomplish their goals.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Segment 1: Introduction to Continuous Concepts (20 minutes)

  • Instructor will present background on the Continuous movement and what it
  • means, and how it differs from other approaches.
  • Instructor will differentiate Continuous Integration, Continuous Delivery, and Continuous Deployment.
  • Instructor will explain the basics of Continuous Integration.
  • Instructor will introduce Git as an example SCM and Jenkins as an example workflow management tool for CI.

Lab 1: First CI Pipeline (10 minutes)

  • Students will setup a simple pipeline in Jenkins. Then they will make a simple code change push it, and observe CI in action.

Segment 2: Pre-flight checks (15 minutes)

  • Instructor will provide more details on how pre-flight checks are intended to work, and how to leverage Gerrit to implement them.

Lab 2: Using pre-flight checks with Gerrit (10 minutes)

  • Students will see how to use pre-checks (such as code reviews and verification builds) through a tool called Gerrit. Students will set up integration with Gerrit in Jenkins and then push a change through Gerrit to see how it is automatically built by Jenkins before being merged.

Break: (10 minutes)

Segment 3: Continuous Integration after merging (15 minutes)

  • Instructor will discuss how to use tools like Gerrit and Jenkins to do verification builds after code changes are merged and how to update changes to correct previous failures.

Lab 3: Further CI with Gerrit (10 minutes)

  • Students will correct the failed verification build, setup a CI job to build a change after it is merged and complete the CI cycle.

Segment 4: Working with Multibranch Pipelines and GitHub (15 minutes)

  • To lay the foundation for Pull Requests, instructor will discuss how to fork a project in GitHub, and how to use Jenkins Multibranch Pipelines to automatically build it.

Lab 4: Working with GitHub and Multibranch Pipelines (10 minutes)

  • Students will fork a project in GitHub, setup credentials in Jenkins and create a Jenkins Multibranch Pipeline to build it.

Break: (10 minutes)

Segment 5: Using Pull Requests (15 minutes)

  • Instructor will explain the GitHub Pull Request ideas and process.
  • Instructor will discuss how Jenkins can be used to automatically build pull requests for verification.

Lab 5: The Pull Request CI Cycle (10 minutes)

  • Students will create a Pull Request, submit it, and let Jenkins build it. They will then merge it in to complete the cycle.

Segment 6: Pull Requests to other users (10 minutes)

  • Instructor will discuss how pull requests can be initiated to other users
  • on GitHub.

Lab 6: Doing a Pull Request to another user (10 minutes)

  • Students will create a branch, make a change, and then submit it as a Pull Request to another user on GitHub.

Wrap-up and final questions (10 minutes)