Skip to content

Continuous Delivery workflow cancels pending PR runs due to shared concurrency group #78

Description

@mnencia

The Continuous Delivery workflow uses a static concurrency group in .github/workflows/continuous-delivery.yml:

concurrency:
  group: "pages"
  cancel-in-progress: false

Because the group is a constant string, every branch shares one queue. GitHub's concurrency model keeps at most one run per group in the pending slot: when a newer run joins the group, the previously pending run is cancelled, regardless of cancel-in-progress. That flag only protects the run that is currently executing, not a queued one.

When Renovate opens a batch of PRs within a few seconds, their CD runs stack up in the same group and the earlier pending ones get cancelled with zero jobs executed. That is how #71 slipped in: its CD run was cancelled at 08:49:27 (see https://github.com/cloudnative-pg/docs/actions/runs/24657277312) before it could fail, and the PR was merged five minutes later without the build ever running.

Fix: scope the group per-branch, for example pages-${{ github.ref }}. Pending runs on different branches no longer supersede each other, while the existing "one deployment at a time on main" behaviour is preserved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions