From 4558a654db12b41cc9acf1d802facc8eef58a666 Mon Sep 17 00:00:00 2001 From: samukweku Date: Wed, 26 Aug 2026 15:43:00 +1000 Subject: [PATCH 1/3] fix: scope auto-release validation to generated files --- .github/workflows/auto-release.yml | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 559e42b33..7e12e92e0 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -127,6 +127,12 @@ jobs: if: steps.check_release.outputs.already_released == 'false' run: uv version --bump ${{ env.VERSION_NAME }} --frozen + - name: Validate version metadata + if: steps.check_release.outputs.already_released == 'false' + run: | + pixi run pre-commit run --files pyproject.toml || \ + pixi run pre-commit run --files pyproject.toml + - name: Commit version bump and create tag if: steps.check_release.outputs.already_released == 'false' run: | @@ -151,12 +157,24 @@ jobs: llamabot configure default-model --model-name="${{ secrets.DEFAULT_LANGUAGE_MODEL }}" llamabot git write-release-notes + - name: Validate generated release notes + if: steps.check_release.outputs.already_released == 'false' + run: | + RELEASE_NOTES="docs/releases/v${{ env.version_number }}.md" + test -f "$RELEASE_NOTES" + pixi run pre-commit run --files "$RELEASE_NOTES" || \ + pixi run pre-commit run --files "$RELEASE_NOTES" + - name: Commit release notes if: steps.check_release.outputs.already_released == 'false' run: | - pixi run pre-commit run --all-files || pixi run pre-commit run --all-files - git add . - git commit -m "Add release notes for ${{ env.version_number }}" + RELEASE_NOTES="docs/releases/v${{ env.version_number }}.md" + git add --force -- "$RELEASE_NOTES" + if git diff --cached --quiet -- "$RELEASE_NOTES"; then + echo "Release notes are unchanged; no release-notes commit is needed." + else + git commit -m "Add release notes for ${{ env.version_number }}" + fi - name: Build package if: steps.check_release.outputs.already_released == 'false' From e028695d64dd4f89ed0ffb3937744b6f05996f35 Mon Sep 17 00:00:00 2001 From: samukweku Date: Thu, 27 Aug 2026 14:51:13 +1000 Subject: [PATCH 2/3] fix(ci): fail release when notes are missing --- .github/workflows/auto-release.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 7e12e92e0..126deea78 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -160,14 +160,18 @@ jobs: - name: Validate generated release notes if: steps.check_release.outputs.already_released == 'false' run: | + set -euo pipefail RELEASE_NOTES="docs/releases/v${{ env.version_number }}.md" - test -f "$RELEASE_NOTES" - pixi run pre-commit run --files "$RELEASE_NOTES" || \ - pixi run pre-commit run --files "$RELEASE_NOTES" + if [[ ! -f "$RELEASE_NOTES" ]]; then + echo "Release notes were not generated: $RELEASE_NOTES" >&2 + exit 1 + fi + pixi run pre-commit run --files "$RELEASE_NOTES" - name: Commit release notes if: steps.check_release.outputs.already_released == 'false' run: | + set -euo pipefail RELEASE_NOTES="docs/releases/v${{ env.version_number }}.md" git add --force -- "$RELEASE_NOTES" if git diff --cached --quiet -- "$RELEASE_NOTES"; then From 8ab3384e8be8a679513d4c8674470309a6541ee6 Mon Sep 17 00:00:00 2001 From: samukweku Date: Thu, 27 Aug 2026 14:53:44 +1000 Subject: [PATCH 3/3] fix(ci): retry release notes formatting --- .github/workflows/auto-release.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 126deea78..b712b8486 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -166,7 +166,8 @@ jobs: echo "Release notes were not generated: $RELEASE_NOTES" >&2 exit 1 fi - pixi run pre-commit run --files "$RELEASE_NOTES" + pixi run pre-commit run --files "$RELEASE_NOTES" || \ + pixi run pre-commit run --files "$RELEASE_NOTES" - name: Commit release notes if: steps.check_release.outputs.already_released == 'false'