Skip to content

[Repo Assist] ci: add concurrency group to release workflow #204

@github-actions

Description

@github-actions

🤖 This is an automated pull request from Repo Assist.

Summary

Adds a concurrency group to release.yml to serialize release-please executions and prevent parallel runs when multiple commits land on main in quick succession (e.g., batched Dependabot updates).

Problem

ci.yml has had concurrency control since PR #178, but release.yml has never had this treatment. When Dependabot merges multiple dependency bumps on the same day (e.g., PRs #191 and #194), each merge triggers a separate release workflow run. Without a concurrency group, both runs execute simultaneously and may conflict over the release-please manifest file.

This fix was also suggested by the CI Coach agentic workflow in issues #200 and #203.

Change

Added a concurrency block with:

  • group: $\{\{ github.workflow }}-$\{\{ github.ref }} — unique per workflow + branch
  • cancel-in-progress: falsequeue rather than cancel runs, so every commit is evaluated

Unlike CI workflows (where cancelling stale runs speeds up feedback), the release workflow should never skip a commit — that would silently drop changelog entries and version bumps. Queuing ensures correctness.

Impact

  • Compute: Eliminates duplicate parallel release-please runs (~1–2 min each)
  • Correctness: Prevents potential manifest conflicts under rapid push scenarios
  • Risk: Low — additive change, no runs are dropped

Test Status

  • ✅ TypeScript compile: passes (npm run compile)
  • ✅ Lint: passes (npm run lint)
  • ℹ️ This is a workflow YAML change; runtime testing requires observing the next batch of Dependabot merges

Closes #200
Closes #203

Generated by Repo Assist ·

To install this agentic workflow, run

gh aw add githubnext/agentics/workflows/repo-assist.md@b466f28f0f65b68d6f2b10b15b44f51d787b93be

Warning

⚠️ Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • releaseassets.githubusercontent.com

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "releaseassets.githubusercontent.com"

See Network Configuration for more information.


Note

This was originally intended as a pull request, but the git push operation failed.

Workflow Run: View run details and download patch artifact

The patch file is available in the agent-artifacts artifact in the workflow run linked above.

To create a pull request with the changes:

# Download the artifact from the workflow run
gh run download 23091840887 -n agent-artifacts -D /tmp/agent-artifacts-23091840887

# Create a new branch
git checkout -b repo-assist/ci-release-concurrency-200-a7e933dff39bf885

# Apply the patch (--3way handles cross-repo patches where files may already exist)
git am --3way /tmp/agent-artifacts-23091840887/aw-repo-assist-ci-release-concurrency-200.patch

# Push the branch to origin
git push origin repo-assist/ci-release-concurrency-200-a7e933dff39bf885

# Create the pull request
gh pr create --title '[Repo Assist] ci: add concurrency group to release workflow' --base main --head repo-assist/ci-release-concurrency-200-a7e933dff39bf885 --repo askpt/code-metrics
Show patch (41 lines)
From 61845008705252c8ba2378262f11c1219ead0fdc Mon Sep 17 00:00:00 2001
From: "github-actions[bot]" <github-actions[bot]@users.noreply.github.com>
Date: Sat, 14 Mar 2026 16:33:43 +0000
Subject: [PATCH] ci: add concurrency group to release workflow

Serialize release-please executions to prevent parallel runs
when multiple commits land on main in quick succession (e.g.,
batched Dependabot updates).

Using cancel-in-progress: false to queue rather than cancel,
ensuring every commit is evaluated by release-please and no
changelog entries are silently dropped.

Closes #200

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
 .github/workflows/release.yml | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index f27dc00..58f0e31 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -5,6 +5,12 @@ on:
     branches:
       - main
 
+# Serialize release runs so rapid pushes to main don't create parallel
+# release-please executions that could conflict over manifest state.
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: false
+
 jobs:
   release-please:
     timeout-minutes: 5
-- 
2.53.0

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions