Skip to content

Commit ae3e09c

Browse files
committed
CI: create GitHub release after PyPI upload; tag by detected version and attach built artifacts; grant contents: write
1 parent b8af658 commit ae3e09c

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

.github/workflows/upload.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ jobs:
8383
upload_pypi:
8484
needs: [build_base_wheel, build_wheels_accelerated, build_sdist]
8585
runs-on: ubuntu-latest
86+
permissions:
87+
contents: write
8688
steps:
8789
- uses: actions/download-artifact@v4
8890
with:
@@ -128,3 +130,36 @@ jobs:
128130
env:
129131
TWINE_USERNAME: __token__
130132
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD_ACCEL }}
133+
134+
- name: Extract version from artifacts
135+
id: extract_version
136+
run: |
137+
set -euo pipefail
138+
file=$(ls dist/svv-*-py3-none-any.whl 2>/dev/null || true)
139+
if [ -z "$file" ]; then
140+
file=$(ls dist/svv-*.tar.gz 2>/dev/null | head -n1 || true)
141+
fi
142+
if [ -z "$file" ]; then
143+
echo "::error title=Version detection failed::No base svv artifact found to determine version."; exit 1
144+
fi
145+
base=$(basename "$file")
146+
# Extract version after 'svv-' up to next '-'
147+
version=$(echo "$base" | sed -E 's/^svv-([^\-]+).*/\1/')
148+
echo "Detected version: $version"
149+
echo "version=$version" >> "$GITHUB_OUTPUT"
150+
151+
- name: Create GitHub Release and upload artifacts
152+
uses: softprops/action-gh-release@v2
153+
with:
154+
tag_name: v${{ steps.extract_version.outputs.version }}
155+
name: svv v${{ steps.extract_version.outputs.version }}
156+
body: |
157+
Automated release for svv v${{ steps.extract_version.outputs.version }} published to PyPI.
158+
159+
Artifacts include the base svv wheel/sdist and svv-accelerated wheels.
160+
draft: false
161+
prerelease: false
162+
files: |
163+
dist/svv-*.whl
164+
dist/svv-*.tar.gz
165+
dist/svv-accelerated-*.whl

0 commit comments

Comments
 (0)