Skip to content

OBS CI pipelines

Victor Pereira edited this page Nov 11, 2021 · 7 revisions

CI pipelines for OBS:

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

  • CircleCI

  • Github Actions

  • OpenQA

  • Build Service

Let's explain what is involved in each Pipeline:

CircleCI:

The Circleci configuration is located in the directory .circleci and it's separated in two files: config.yml and conditional_config.yml.

To avoid wasting resources, we are using [dynamic configuration] (https://circleci.com/blog/building-cicd-pipelines-using-dynamic-config/) and executing specific workflows or jobs based on which files are modified. In the config.yml we set some variables based on which files changed. These variables are used then in the conditional_config.yml as conditional 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 that we had too there. The configuration can be found under .github/workflows. For now, we have two services running on Github Actions: The Pull Request labeler, used to label a PR accordingly 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 people wanting to use. Therefore,a we test it too. The specs for that can be found here

Build Service:

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

Clone this wiki locally