@@ -31,21 +31,21 @@ jobs:
3131 outputs :
3232 VERSION : ${{ steps.set-version.outputs.VERSION }}
3333 steps :
34- - uses : actions/checkout@v5
34+ - uses : actions/checkout@v6
3535 with :
3636 fetch-depth : 1
3737
3838 - uses : actions/setup-python@v6
3939 with :
4040 python-version : 3.12
4141
42- - name : Install Poetry
43- run : make install-poetry
42+ - name : Install UV
43+ uses : astral-sh/setup-uv@v7
4444
4545 - name : Set version
4646 id : set-version
4747 run : |
48- CURRENT_VERSION=$(poetry version --short)
48+ CURRENT_VERSION=$(uv version --short)
4949 TIMESTAMP=$(date +%Y%m%d%H%M%S)
5050 echo "VERSION=${CURRENT_VERSION}.dev${TIMESTAMP}" >> "$GITHUB_OUTPUT"
5151
@@ -71,15 +71,42 @@ jobs:
7171
7272 steps :
7373 - name : Download all the artifacts
74- uses : actions/download-artifact@v5
74+ uses : actions/download-artifact@v6
7575 with :
7676 merge-multiple : true
7777 path : dist/
7878 - name : List downloaded artifacts
7979 run : ls -R dist/
8080 - name : Publish to TestPyPI
81+ id : publish-testpypi
82+ continue-on-error : true
8183 uses : pypa/gh-action-pypi-publish@release/v1
8284 with :
8385 repository-url : https://test.pypi.org/legacy/
8486 skip-existing : true
8587 verbose : true
88+ - name : Display error message on publish failure
89+ if : steps.publish-testpypi.outcome == 'failure'
90+ run : |
91+ echo "::error::Failed to publish to TestPyPI"
92+ echo ""
93+ echo "⚠️ TestPyPI Publish Failed"
94+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
95+ echo ""
96+ echo "This may be due to TestPyPI storage limits."
97+ echo "See: https://docs.pypi.org/project-management/storage-limits"
98+ echo ""
99+ echo "To resolve this issue, use the pypi-cleanup utility to clean up old TestPyPI artifacts:"
100+ echo "https://pypi.org/project/pypi-cleanup/"
101+ echo ""
102+ echo " uvx pypi-cleanup --package pyiceberg --host https://test.pypi.org/ \\"
103+ echo " --verbose -d 10 --do-it --username <username>"
104+ echo ""
105+ echo "Requirements:"
106+ echo " • Must be a maintainer for pyiceberg on TestPyPI"
107+ echo " (https://test.pypi.org/project/pyiceberg)"
108+ echo " • Requires TestPyPI password and 2FA"
109+ echo " • ⚠️ ONLY do this for TestPyPI, NOT for production PyPI!"
110+ echo ""
111+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
112+ exit 1
0 commit comments