Skip to content

ci(nightly): scope concurrency per branch - #96

Merged
loss-and-quick merged 1 commit into
mainfrom
ci/nightly-concurrency-per-branch
Jun 22, 2026
Merged

ci(nightly): scope concurrency per branch#96
loss-and-quick merged 1 commit into
mainfrom
ci/nightly-concurrency-per-branch

Conversation

@loss-and-quick

Copy link
Copy Markdown
Owner

Summary

The Nightly workflow's concurrency group was the static nightly, shared across every branch:

concurrency:
  group: nightly
  cancel-in-progress: true

With cancel-in-progress: true, dispatching a nightly on one branch cancelled an in-flight nightly on another branch. Seen in practice: two manual workflow_dispatch runs 13 seconds apart on different branches (feat/proxy-mode at 11:51:36, feat/asset-auto-update at 11:51:49) — the second cancelled the first, leaving its module / desktop jobs cancelled on "Set up job".

Keying the group on github.ref scopes cancellation to a single branch: a newer run still supersedes an older run of the same branch (the intent of cancel-in-progress), but parallel branches no longer fight over one global slot. This matches the per-discriminator style already used in sync-bun-nix.yml (sync-bun-nix-${{ github.event.pull_request.number }}).

release.yml's global release group is intentionally left as-is — it's a deliberate single global lock (cancel-in-progress: false) so two releases never bump module.prop at once.

Affected layer

  • frontend/ — React Web UI
  • crates/ · src-tauri/ — Rust core / backend / Tauri desktop
  • module/ — Android installable zip (thin launcher over the Rust daemon)
  • scripts/ — build / release helpers
  • CI / .github/
  • Docs only

Verification

  • actionlint (v1.7.12, the version pinned in lint-workflows.yml) clean on nightly.yml

Checklist

  • Title is a scoped Conventional Commit; commits are logically split
  • No build artifacts committed
  • Generated frontend/src/generated/ not touched
  • No user-visible strings changed
  • No project-id renames

Notes for reviewers

Pure CI scoping fix; no build logic touched.

The nightly concurrency group was the static "nightly", shared across
every branch, so dispatching a nightly on one branch cancelled an
in-flight nightly on another (two manual runs 13s apart cancelled each
other on "Set up job"). Key the group on github.ref so cancel-in-progress
only supersedes an older run of the same branch.
@github-actions github-actions Bot added the ci CI / workflows (.github/) label Jun 22, 2026
@loss-and-quick
loss-and-quick merged commit c5f4736 into main Jun 22, 2026
8 checks passed
@loss-and-quick
loss-and-quick deleted the ci/nightly-concurrency-per-branch branch June 22, 2026 12:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI / workflows (.github/)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant