Skip to content

Commit ede54ef

Browse files
authored
ci: only publish to PyPI when semantic-release creates new version (#50)
The release workflow was failing because it attempted to publish to PyPI even when semantic-release detected that the version already exists and skipped creating a release. This commit fixes the workflow to: 1. Check if dist/ directory exists after semantic-release runs 2. Only trigger PyPI publish if dist/ was created (new release) 3. Prevent publishing failures when no new version is released This resolves the 'No such file or directory: dist/' errors in recent release workflow runs.
1 parent 6f9288e commit ede54ef

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

.github/workflows/release.yml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,23 @@ jobs:
4747
run: uv pip install --system "setuptools>=61.0"
4848

4949
- name: Release with Python Semantic Release
50+
id: semantic-release
5051
env:
5152
GH_TOKEN: ${{ steps.app-token.outputs.token }}
52-
run: uv run semantic-release version
53+
run: |
54+
set +e
55+
uv run semantic-release version
56+
echo "exit_code=$?" >> $GITHUB_OUTPUT
57+
set -e
58+
# Check if dist/ directory was created (indicates new release)
59+
if [ -d "dist" ]; then
60+
echo "new_release=true" >> $GITHUB_OUTPUT
61+
else
62+
echo "new_release=false" >> $GITHUB_OUTPUT
63+
fi
5364
5465
- name: Publish to PyPI
55-
if: steps.app-token.outcome == 'success'
66+
if: steps.semantic-release.outputs.new_release == 'true'
5667
uses: pypa/gh-action-pypi-publish@release/v1
5768
with:
5869
print-hash: true

0 commit comments

Comments
 (0)