Skip to content

Serialize latest release updates in release.yml to prevent race conditions#6

Merged
simonpainter merged 3 commits into
mainfrom
copilot/add-concurrency-to-release-workflow
May 9, 2026
Merged

Serialize latest release updates in release.yml to prevent race conditions#6
simonpainter merged 3 commits into
mainfrom
copilot/add-concurrency-to-release-workflow

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 9, 2026

The release workflow can run concurrently on rapid pushes/re-runs and interleave latest tag/release mutation steps, causing incorrect or missing assets. This change ensures only one run at a time can update latest, with newer runs preempting older in-progress runs.

  • Workflow concurrency guard

    • Added workflow-level concurrency to .github/workflows/release.yml:
      • group: release-latest
      • cancel-in-progress: true
    • This serializes all runs that mutate latest and cancels stale in-flight updates.
  • Repository hygiene (incidental)

    • Added .gitignore entry for /uping to avoid tracking the local build artifact.
concurrency:
  group: release-latest
  cancel-in-progress: true

Copilot AI and others added 2 commits May 9, 2026 18:52
Copilot AI changed the title [WIP] Add concurrency to prevent latest release races in release.yml Serialize latest release updates in release.yml to prevent race conditions May 9, 2026
Copilot AI requested a review from simonpainter May 9, 2026 18:53
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prevents race conditions in the “latest” GitHub Release workflow by serializing workflow runs that delete/recreate the latest release and tag, ensuring rapid pushes or reruns don’t interleave release mutation steps.

Changes:

  • Added workflow-level concurrency to .github/workflows/release.yml (group: release-latest, cancel-in-progress: true) to ensure only one in-flight run updates latest.
  • Added /uping to .gitignore to avoid accidentally committing the locally-built binary artifact.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/release.yml Adds a workflow-level concurrency guard to serialize/cancel runs that mutate the latest release/tag.
.gitignore Ignores the repo-root uping build output binary.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@simonpainter simonpainter marked this pull request as ready for review May 9, 2026 19:01
@simonpainter simonpainter merged commit ab6d6e3 into main May 9, 2026
6 checks passed
@simonpainter simonpainter deleted the copilot/add-concurrency-to-release-workflow branch May 10, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

release.yml: add concurrency to prevent latest release races

3 participants