Continuous Integration / Continuous Development (CI/CD)

GitLab is a git platform used for code hosting and collaboration. It can be used to automatically run checks and other code or workflows on GitLab’s servers. We’ll learn how to use this to make our code robust to errors, preserved, and reproducible.

The skills we’ll focus on:

  1. Making scripts exit correctly
  2. Building a CI/CD workflow of unlimited potential
  3. Understanding how job runners work (and get access to your clones)
  4. The GitLab permissions model
  5. Protecting secret information while allowing jobs to run


This assumes that you’ll have some basic background with your command line, for example:

  1. How to execute custom shell scripts (if you are not familiar with the shell, click here)
  2. How to run python scripts (if you are not familiar with python, click here)
  3. How to interact with remotes in git (if you are not familiar with git, click here)

HSF Software Training

HSF Logo
This training module is part of the HSF Software Training Center, a series of training modules that serves HEP newcomers the software skills needed as they enter the field, and in parallel, instill best practices for writing software.


Setup Download files required for the lesson
00:00 1. Introduction What is continuous integration / continuous deployment?
00:05 2. Exit Codes What is an exit code?
00:25 3. Understanding Yet Another Markup Language What is YAML?
00:30 4. YAML and CI What is the GitLab CI specification?
00:35 5. Coffee break! Get up, stretch out, take a short break.
00:50 6. Hello CI World How do I run a simple GitLab CI job?
01:05 7. Adding CI to Your Existing Code I have code already in GitLab, how can I add CI to it?
01:20 8. Eins Zwei DRY How can we make job templates?
01:35 9. Even more builds How can we make variations of our builds?
01:50 10. Building with Images Can we use docker images to ease our setup?
02:05 11. Coffee break! Get up, stretch out, take a short break.
02:20 12. All the World's a Stage How do you make some jobs run after other jobs?
02:30 13. A Skimmer Higgs How can I run my skimming code in the GitLab CI/CD?
02:45 14. Getting into the Spy Game (Optional) How can I give my GitLab CI job private information?
03:00 15. Making Plots to Take Over The World How do we make plots?
03:15 16. Let's Actually Make A Test (For Real) I’m out of questions.
I’ve been here too long. Mr. Stark, I don’t feel too good.
03:40 17. Homework If you have any, ask on mattermost!
04:10 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.