-
Notifications
You must be signed in to change notification settings - Fork 441
Staging Workflow
- A Project has one StagingWorkflow
- A StagingWorkflow has many StagingProjects
- A StagingProject has many StageRequests
- A StagedRequest has one BsRequest
- A BsRequest has many Reviews
Requests with open review by group that are not staged or excluded.
To tell people that the request is going to be staged, and to prevent this request to be merged into the main project.
Requests that the manager doesn't want to include in a stage. The belong to the model Staging::RequestExclusion.
The overall_state method defines whether a StagingProject can be merged or not. The following conditions should be met to make a StagingProject acceptable, aka. mergable:
- if it is not empty
- if there are no untracked requests or obsolete requests (requests in state 'declined', 'superseded' or 'revoked')
- if there are no unfinished builds for any StagedRequest of a StagingProject
- if there are no open reviews for any StagedRequest of a StagingProject
- if there are no open StatusChecks for any Repositories of a StagingProject
Merging a StagingProject means to accept all requests that are staged for this project. Once the requests have been accepted, they are unstaged from the project.
@staging_project.staged_requests.each do |staged_request|
staged_request.request.reviews.accept # the by project review
staged_request.request.accept....
staged_request.destroy # Remove the relationship
end
StagedRequest, is a request which is assigned to a specific StagingProject
StageRequest is ready if it doesn't have any open reviews.¹
¹ The review by project on the StagingProject is ignored. See the question below.
To tell people where the request is staged and to prevent this request to be merged into the main project.
StageRequest is "In review" if it has at least one open review.¹
StageRequest is "Obsolete" because it is in the state: declined, superseded or revoked.
Shows if the BsRequest has a BsRequestActionDelete action for deleting a package
The idea is to show if there is any build problems, or status checks, blocking the merge of the StagingProject.
It shows how far the staging project is away from being mergeable.
- 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