Skip to content

OBS CI pipelines

Dany Marcoux edited this page Nov 17, 2021 · 6 revisions

We have different CI pipelines, each one with a different purpose. They are:

Let's explain what is involved in each pipeline:

CircleCI

The CircleCI configuration is separated in two files: .circleci/config.yml and .circleci/conditional_config.yml.

To avoid wasting resources, we are using CircleCI's dynamic configuration feature to execute specific workflows or jobs based on which files were changed. In the config.yml, we set some variables based on which files changed. These variables are then used in the conditional_config.yml as conditions to start jobs and workflows.

Images used by CircleCI:

We try to eat our own dog food as much as we can. Therefore, we use OBS to build images with the software necessary to run OBS in production. The images can be found here. We have images for frontend testing, backend testing and for our own development environment.

GitHub Actions

Since GitHub introduced the GitHub actions, we started to move some part of the automation there. The configuration can be found in the directory .github/workflows. For now, we have two GitHub Actions workflow: The Pull Request labeler, used to automatically labels PR based on rules we defined and Brakeman, a static analysis security vulnerability scanner for Ruby on Rails applications.

OpenQA

OpenQA is used to test a bootable media, go through the install process and test if the UI is up and running. We don't use the bootable ISO in production, but we provide it as installer for our customers. Therefore, we test it too. The specs for that can be found under dist/t

Build Service

While building our package obs-server, we run some tests and migrate the db, to make sure that nothing breaks.

Clone this wiki locally