diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 559e42b33..b712b8486 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,29 @@ 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: | + set -euo pipefail + RELEASE_NOTES="docs/releases/v${{ env.version_number }}.md" + 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" || \ + 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 }}" + 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 + 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'