CI: Add interruptible jobs and auto-cancel for redundant pipelines
Problem
When a new commit is pushed to an MR, previous pipeline jobs keep running, wasting runner resources (especially the limited dle-test shell runners) and causing confusion with stale results.
Solution
- Add
default: interruptible: trueso all jobs can be cancelled - Add
workflow: auto_cancel: on_new_commit: interruptibleto automatically cancel redundant pipelines - Deploy jobs remain non-interruptible
Expected Impact
- Reduced runner waste when multiple commits are pushed quickly
- Faster feedback for developers (old pipelines don't block runners)
- Cleaner pipeline history
- Better utilization of limited shell runners
Part of CI optimization effort
Related: postgresai MR !197 (merged)
Acceptance Criteria
-
default: interruptible: trueis set in.gitlab-ci.ymlso all jobs are cancellable by default -
workflow: auto_cancel: on_new_commit: interruptibleautomatically cancels running pipelines on new MR commits - Deploy jobs remain
interruptible: false - Limited shell runners (dle-test) are freed up faster when new commits are pushed
Definition of Done
- CI configuration updated and merged
- Verified by pushing consecutive commits: old pipeline cancelled, new pipeline starts
- Shell runner utilization improved (less time running stale pipelines)
- No accidental cancellation of deploy jobs
Edited by Nikolay Samokhvalov