CI Resource Groups Status Transition
Important: This feature will be announced in gitlab-com/www-gitlab-com!36621 (merged). This MR has to be merged by Dec, 13th Friday.
What does this MR do?
There is an upstream MR !20950 (merged).
This MR adds status transition flow for Resource Group, which is used for Limit pipeline job concurrency using named semaphores. We introduce
waiting_for_resource status to
Ci::Build and manipulate the build status transition with Resource Groups.
Status transition overview
- When a build requires a resource, the status transits to
- When a build successfully retains a resource, the status transits to
- When a build failed to retain a resource, the status stays as
- When a build finished, it releases a resource, and find the next waiting build.
The other notes:
- Ci::Bridge is not supported in this iteration.
This feature is implemented behind
ci_resource_group feature flag and disabled by default. Once we've confirmed the feature is deemed stable, we remove the feature flag in order to publish the feature as GA.
- Split MR for YAML parser
Introduce a status
waiting_for_resourceand manipulate the status transition
- Write tests
- Previous PoC !20450 (closed)
Does this MR meet the acceptance criteria?
- [-] Changelog entry
- [-] Documentation (if required)
- Code review guidelines
- Merge request performance guidelines
- Style guides
- Database guides
- Separation of EE specific content
Availability and Testing
- Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process.
- [-] Tested in all supported browsers
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team