Implement workflow:rules:auto_cancel for CI
What does this MR do and why?
With workflow:rules:auto_cancel
, users will be able to control
their CI config's behaviors depending on some conditions (rules).
In this change, besides workflow:rules:auto_cancel:on_new_commit
,
workflow:rules:auto_cancel:on_job_failure
is also implemented.
However, since the workflow:auto_cancel:on_job_failure
syntax
is not used, it is not documented.
This change is behind
the existing feature flag ci_workflow_auto_cancel_on_new_commit
(#434676 (closed)).
Issue: #436467 (closed)
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Screenshots or screen recordings
Enable the FF:
Feature.enable(:ci_workflow_auto_cancel_on_new_commit)
Example config;
workflow:
auto_cancel:
on_new_commit: interruptible
rules:
- if: $CI_COMMIT_REF_PROTECTED == 'true'
auto_cancel:
on_new_commit: none
- when: always # Run the pipeline in other cases
test1:
script: sleep 10
interruptible: false
test2:
script: sleep 10
interruptible: true
In a non-protected branch
Create a pipeline;
Send another commit and see the previous pipeline;
In a protected branch
Create a pipeline;
Send another commit and see the previous pipeline;