From b6299711b66083a17bd9c17ea5e995322a91b213 Mon Sep 17 00:00:00 2001 From: Kevin Longe <273747162+kvlonge@users.noreply.github.com> Date: Thu, 12 Nov 2026 06:57:18 +0000 Subject: [PATCH] ci: retry a failed release artifact upload once A transient artifact-service timeout on one wheel upload skipped the PyPI publish of 0.9.0. Each upload in publish.yml now continues on error and retries once, overwriting any partial artifact. --- .github/workflows/publish.yml | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6684308..96880ea 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -118,10 +118,21 @@ jobs: - name: Assert native CLI wheel is interpreter-agnostic shell: bash run: bash .github/scripts/assert_cli_wheel_tags.sh dist - - uses: actions/upload-artifact@v5 + # A transient artifact-service error would otherwise skip the release, so the upload + # retries once, replacing any artifact the failed attempt left behind. + - id: upload-wheel + uses: actions/upload-artifact@v5 + continue-on-error: true with: name: wheel-${{ matrix.platform.name }} path: dist + - name: Retry the wheel upload + uses: actions/upload-artifact@v5 + if: steps.upload-wheel.outcome == 'failure' + with: + name: wheel-${{ matrix.platform.name }} + path: dist + overwrite: true sdist: name: Build sdists and Python wheel @@ -146,10 +157,21 @@ jobs: command: sdist args: --out ../../dist working-directory: packages/sqlclean-cli - - uses: actions/upload-artifact@v5 + # A transient artifact-service error would otherwise skip the release, so the upload + # retries once, replacing any artifact the failed attempt left behind. + - id: upload-sdist + uses: actions/upload-artifact@v5 + continue-on-error: true + with: + name: sdist + path: dist + - name: Retry the sdist upload + uses: actions/upload-artifact@v5 + if: steps.upload-sdist.outcome == 'failure' with: name: sdist path: dist + overwrite: true pypi: name: Publish to PyPI