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

  1. Add default: interruptible: true so all jobs can be cancelled
  2. Add workflow: auto_cancel: on_new_commit: interruptible to automatically cancel redundant pipelines
  3. 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: true is set in .gitlab-ci.yml so all jobs are cancellable by default
  • workflow: auto_cancel: on_new_commit: interruptible automatically 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