Prevent DAG builds to run after skipped need build
What does this MR do?
This MR is based on !22246 (merged).
This can not be merged until that is merged.
This MR fixes the bug stated in #31526 (closed).
When a needed job is skipped, the next job must be skipped too. That's because we don't want a job to run if dependent job does not run.
Please read before reviewing
I had to change Ci::PipelineProcessing::LegacyProcessingService
, because I had to use aggregated_needs_names
in Ci::ProcessBuildService
.
For the same reason, I also implemented an ugly test case for Ci::ProcessBuildService
.
However, after implementing scheduling_type
storing, we will able to use it directly, and will not need aggregated_needs_names
in Ci::ProcessBuildService
.
I am thinking to create a follow-up issue to use scheduling_type
and remove aggregated_needs_names
from these changes.
Screenshots
Does this MR meet the acceptance criteria?
Conformity
-
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
Security
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 @gitlab-com/gl-security/appsec
-
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