-
Notifications
You must be signed in to change notification settings - Fork 442
OBS CI pipelines
We have different CI pipelines, each one with a different purpose. They are:
Let's explain what is involved in each pipeline:
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.
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 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
While building our package obs-server
, we run some tests and migrate the db, to make sure that nothing breaks.
- Development Environment Overview
- Development Environment Tips & Tricks
- Spec-Tips
- Code Style
- Rubocop
- Testing with VCR
- 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
- next_rails
- Ruby Update
- Rails Profiling
- Installing a local LDAP-server
- 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
- How to Introduce Software Design Patterns
- Query Objects
- Services
- View Components
- RFC: Core Components
- RFC: Decorator Pattern
- RFC: Backend models