-
Notifications
You must be signed in to change notification settings - Fork 461
OBS CI pipelines
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.
- Development Environment Overview
- Development Environment Tips & Tricks
- Spec-Tips
- Code Style
- Rubocop
- Testing with VCR
- Test in kanku
- Authentication
- Authorization
- Autocomplete
- BS Requests
- Events
- ProjectLog
- Notifications
- Feature Toggles
- Build Results
- Attrib classes
- Flags
- The BackendPackage Cache
- Maintenance classes
- Cloud uploader
- Delayed Jobs
- Staging Workflow
- StatusHistory
- OBS API
- Owner Search
- Search
- Links
- Distributions
- Repository
- Data Migrations
- Package Versions
- next_rails
- Ruby Update
- Rails Profiling
- Remote Pairing Setup Guide
- Factory Dashboard
- osc
- Setup an OBS Development Environment on macOS
- Run OpenQA smoketest locally
- Responsive Guidelines
- Importing database dumps
- Problem Statement & Solution
- Kickoff New Stuff
- New Swagger API doc
- Documentation and Communication
- GitHub Actions
- Brakeman
- How to Introduce Software Design Patterns
- Query Objects
- Services
- View Components
- RFC: Core Components
- RFC: Decorator Pattern
- RFC: Backend models
- RFC: Hotwire Turbo Frames Pattern