From 9c2140b8326060700e948483fb738067cf7b54b7 Mon Sep 17 00:00:00 2001 From: Emma Thorpe Date: Fri, 21 Aug 2026 14:46:57 +0100 Subject: [PATCH] fix: do not fail the release when pyproject.toml is already current The release step added in #17 commits the computed version unconditionally. If pyproject.toml already carries that version -- a re-run of a release, or a version corrected by hand -- there is nothing staged and `git commit` exits non-zero, failing the job after the image has already been pushed and before the tag is created. Skip the commit and its push in that case, and tag either way. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/build-and-publish.yaml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/build-and-publish.yaml b/.gitea/workflows/build-and-publish.yaml index c40b899..19570a0 100644 --- a/.gitea/workflows/build-and-publish.yaml +++ b/.gitea/workflows/build-and-publish.yaml @@ -188,11 +188,19 @@ jobs: git config user.name "${{ github.actor }}" git config user.email "${{ github.actor }}@users.noreply.${REGISTRY}" git add pyproject.toml - git commit -m "chore(release): v${VERSION}" - # Push the branch before the tag. If main has moved on and this push - # is rejected, the job fails without having left a tag pointing at a - # commit that is not on main. - git push origin "HEAD:${GITHUB_REF_NAME}" + # The file may already carry this version, in which case there is + # nothing to commit and `git commit` would fail the job after the + # image has already been pushed. + if git diff --cached --quiet; then + echo "pyproject.toml is already at ${VERSION}" + else + git commit -m "chore(release): v${VERSION}" + # Push the branch before the tag. If main has moved on and this push + # is rejected, the job fails without having left a tag pointing at a + # commit that is not on main. + git push origin "HEAD:${GITHUB_REF_NAME}" + fi + git tag -a "v${VERSION}" -m "v${VERSION}" git push origin "v${VERSION}" -- 2.54.0