Continuous Integration and Containers

Continuous integration (CI) and containerization play a key role in software sustainability and reproducibility. Especially in the field of research, incorporating such practices deliver many advantages thereby increasing the quality of software development. In this workshop, we teach you to create a CI pipeline for a software project and also wrap your software dependencies in a container image using Docker.

Learning Materials

Learning Objectives

We answer common questions like:

  • How do we start with Containerization and CI?
  • How to use containers in a CI pipeline?
  • How to publish my container images?

And when you’re done you’ll be able to:

  • Create a Docker image using Docker and host the image in GitLab
  • Establish a CI pipeline in your own GitLab project
  • Incorporate tests in a CI pipeline
  • Get an impression of an in-house code’s CI pipeline and containerization approaches

Agenda

Part 1 | Containerizations

  • Introduction to containerization using Docker
  • Hands-on session to build and publish a custom Docker image
  • Hands-on session to develop codes in containers using Visual Studio Code

Part 2 | Continuous Integration

  • Introduction to CI using GitLab
  • Hands-on session to create a generic CI pipeline
  • Hands-on session to manage pipeline artifacts and code coverage test metrics

Part 3 | Demonstration of an in-house code’s CI pipeline and containerization approaches