From 12e76ce6d4481e153f00ca10d3a073af82a23aee Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 00:34:45 +0000 Subject: [PATCH 1/7] ci: auto-publish releases on push to main Co-Authored-By: AJ Steers --- .github/release-drafter.yml | 41 --------------------------- .github/workflows/release-drafter.yml | 36 ++++++++++++++++------- 2 files changed, 26 insertions(+), 51 deletions(-) delete mode 100644 .github/release-drafter.yml diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml deleted file mode 100644 index 722ffc5..0000000 --- a/.github/release-drafter.yml +++ /dev/null @@ -1,41 +0,0 @@ -name-template: 'v$RESOLVED_VERSION' -tag-template: 'v$RESOLVED_VERSION' -categories: - - title: '🚀 Features' - labels: - - 'feature' - - 'enhancement' - - title: '🐛 Bug Fixes' - labels: - - 'fix' - - 'bugfix' - - 'bug' - - title: '🧰 Maintenance' - label: 'chore' -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' -change-title-escapes: '\<*_&' -version-resolver: - major: - labels: - - 'major' - minor: - labels: - - 'minor' - patch: - labels: - - 'patch' - default: patch -template: | - ## Changes - - $CHANGES -autolabeler: - - label: 'chore' - title: - - '/chore\:/i' - - label: 'bug' - title: - - '/fix\:/i' - - label: 'enhancement' - title: - - '/feature/i' diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 059eaca..3bd0822 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -1,6 +1,7 @@ name: Release Drafter on: + workflow_dispatch: {} push: branches: - main @@ -9,21 +10,36 @@ concurrency: group: release-drafter cancel-in-progress: false -permissions: - contents: read - jobs: - update_release_draft: + draft_release: + name: Draft or Publish Release permissions: contents: write - pull-requests: read + pull-requests: write runs-on: ubuntu-latest steps: - # Drafts the next Release notes as Pull Requests are merged into "main" - # Pinned to v6.0.0 to avoid v6.1.0 bug: https://github.com/release-drafter/release-drafter/issues/1425 - - uses: release-drafter/release-drafter@v6.0.0 + - name: Create or publish release + id: release-drafter + uses: aaronsteers/semantic-pr-release-drafter@v2.4.4 with: - config-name: release-drafter.yml - disable-autolabeler: true + # Pushes to main publish immediately; manual dispatches only refresh the draft. + publish: ${{ github.event_name == 'push' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Releases published with GITHUB_TOKEN do not fire tag-push workflows, + # so the major tag is moved here rather than by update-major-tags.yml. + - name: Check out repository + if: github.event_name == 'push' + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Update major version tag + if: github.event_name == 'push' + env: + MAJOR_TAG: v${{ steps.release-drafter.outputs.major-version }} + TARGET_SHA: ${{ steps.release-drafter.outputs.resolved-sha }} + run: | + git tag -f "$MAJOR_TAG" "$TARGET_SHA" + git push -f origin "$MAJOR_TAG" From c6ebe6b76df2c91aa3a9f23ebc287bfaa555cb01 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 00:42:53 +0000 Subject: [PATCH 2/7] ci: drop redundant downstream-trigger steps; rely on native release/tag events Co-Authored-By: AJ Steers --- .github/workflows/release-drafter.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 3bd0822..7aecbd5 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -26,20 +26,3 @@ jobs: publish: ${{ github.event_name == 'push' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - # Releases published with GITHUB_TOKEN do not fire tag-push workflows, - # so the major tag is moved here rather than by update-major-tags.yml. - - name: Check out repository - if: github.event_name == 'push' - uses: actions/checkout@v4 - with: - fetch-depth: 1 - - - name: Update major version tag - if: github.event_name == 'push' - env: - MAJOR_TAG: v${{ steps.release-drafter.outputs.major-version }} - TARGET_SHA: ${{ steps.release-drafter.outputs.resolved-sha }} - run: | - git tag -f "$MAJOR_TAG" "$TARGET_SHA" - git push -f origin "$MAJOR_TAG" From 4e4e2729dca7ba5912a182f1cf6dbf425fe06062 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 00:46:53 +0000 Subject: [PATCH 3/7] ci: move major-tag update into release-drafter workflow Co-Authored-By: AJ Steers --- .github/workflows/release-drafter.yml | 14 ++++++++++++++ .github/workflows/update-major-tags.yml | 22 ---------------------- 2 files changed, 14 insertions(+), 22 deletions(-) delete mode 100644 .github/workflows/update-major-tags.yml diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 7aecbd5..eaa6287 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -26,3 +26,17 @@ jobs: publish: ${{ github.event_name == 'push' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Move major version tag + if: github.event_name == 'push' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MAJOR_TAG: v${{ steps.release-drafter.outputs.major-version }} + TARGET_SHA: ${{ steps.release-drafter.outputs.resolved-sha }} + run: | + if gh api -X PATCH "repos/$GITHUB_REPOSITORY/git/refs/tags/$MAJOR_TAG" -f sha="$TARGET_SHA" -F force=true; then + echo "Moved $MAJOR_TAG -> $TARGET_SHA" + else + gh api -X POST "repos/$GITHUB_REPOSITORY/git/refs" -f ref="refs/tags/$MAJOR_TAG" -f sha="$TARGET_SHA" + echo "Created $MAJOR_TAG -> $TARGET_SHA" + fi diff --git a/.github/workflows/update-major-tags.yml b/.github/workflows/update-major-tags.yml deleted file mode 100644 index cfc902f..0000000 --- a/.github/workflows/update-major-tags.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Update Major Version Tags - -on: - push: - tags: - - 'v[0-9]+.[0-9]+.[0-9]+' - -permissions: - contents: write - -jobs: - update-major-tags: - name: Update Major Tags - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Update major tag - uses: nowactions/update-majorver@v1 From 57c8b927b0e44c6c768d6e9d6f9f4da41147ffae Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 01:10:40 +0000 Subject: [PATCH 4/7] ci: drop floating major version tag Co-Authored-By: AJ Steers --- .github/workflows/release-drafter.yml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index eaa6287..67217de 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -19,24 +19,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Create or publish release - id: release-drafter uses: aaronsteers/semantic-pr-release-drafter@v2.4.4 with: # Pushes to main publish immediately; manual dispatches only refresh the draft. publish: ${{ github.event_name == 'push' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Move major version tag - if: github.event_name == 'push' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - MAJOR_TAG: v${{ steps.release-drafter.outputs.major-version }} - TARGET_SHA: ${{ steps.release-drafter.outputs.resolved-sha }} - run: | - if gh api -X PATCH "repos/$GITHUB_REPOSITORY/git/refs/tags/$MAJOR_TAG" -f sha="$TARGET_SHA" -F force=true; then - echo "Moved $MAJOR_TAG -> $TARGET_SHA" - else - gh api -X POST "repos/$GITHUB_REPOSITORY/git/refs" -f ref="refs/tags/$MAJOR_TAG" -f sha="$TARGET_SHA" - echo "Created $MAJOR_TAG -> $TARGET_SHA" - fi From fc2ce62887dd4d1ed085cc45d2e93acf70c216e4 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 01:39:37 +0000 Subject: [PATCH 5/7] ci: name job "Release Drafter" Co-Authored-By: AJ Steers --- .github/workflows/release-drafter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 67217de..5bd3435 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -12,7 +12,7 @@ concurrency: jobs: draft_release: - name: Draft or Publish Release + name: Release Drafter permissions: contents: write pull-requests: write From 67fe5f73d7aad236275a5c4a7c713796a00653f8 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 01:42:55 +0000 Subject: [PATCH 6/7] ci: name job "Create Release" Co-Authored-By: AJ Steers --- .github/workflows/release-drafter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 5bd3435..c6d32b4 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -12,7 +12,7 @@ concurrency: jobs: draft_release: - name: Release Drafter + name: Create Release permissions: contents: write pull-requests: write From 55fa8daf745014ab16885946734bc888b8091c2d Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Sat, 19 Sep 2026 01:46:10 +0000 Subject: [PATCH 7/7] ci: replace event-name publish gate with dry-run workflow_dispatch input Co-Authored-By: AJ Steers --- .github/workflows/release-drafter.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index c6d32b4..e54ede3 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -1,10 +1,15 @@ name: Release Drafter on: - workflow_dispatch: {} push: branches: - main + workflow_dispatch: + inputs: + dry-run: + description: Compute the next version without creating or publishing a release + type: boolean + default: false concurrency: group: release-drafter @@ -21,7 +26,7 @@ jobs: - name: Create or publish release uses: aaronsteers/semantic-pr-release-drafter@v2.4.4 with: - # Pushes to main publish immediately; manual dispatches only refresh the draft. - publish: ${{ github.event_name == 'push' }} + publish: true + dry-run: ${{ inputs.dry-run || false }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}