Skip to content

Commit ddac7dd

Browse files
fix(ci): publish Python distributions as
release assets
1 parent c7d08a2 commit ddac7dd

2 files changed

Lines changed: 14 additions & 11 deletions

File tree

.github/workflows/release.yml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,7 @@ jobs:
121121
needs: release
122122
runs-on: ubuntu-latest
123123
permissions:
124-
contents: read
125-
packages: write
124+
contents: write
126125
steps:
127126
- uses: actions/checkout@v4
128127
with:
@@ -136,13 +135,15 @@ jobs:
136135
run: uv sync --python 3.14
137136
- name: Build package
138137
run: uv build
139-
- name: Install Twine
140-
run: python -m pip install --upgrade twine
141-
- name: Publish package
138+
- name: Upload workflow artifact
139+
uses: actions/upload-artifact@v4
140+
with:
141+
name: python-package-${{ needs.release.outputs.tag }}
142+
path: dist/*
143+
- name: Upload release assets
142144
env:
143-
TWINE_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
144-
TWINE_USERNAME: ${{ github.actor }}
145-
run: python -m twine upload --repository-url https://api.github.com/orgs/${{ github.repository_owner }}/packages/pypi/upload dist/*
145+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
146+
run: gh release upload "${{ needs.release.outputs.tag }}" dist/* --clobber
146147

147148
build-release-docs:
148149
if: needs.release.outputs.released == 'true'

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ pip install fastapi-paseto
3333
```
3434

3535
Releases are built from GitHub Actions after a successful semantic release on
36-
`master`. If you consume the package from the repository's GitHub Packages
37-
index, configure your Python package index credentials before installing.
36+
`master`. Each release publishes the wheel and source distribution as GitHub
37+
workflow artifacts and as downloadable assets on the corresponding GitHub
38+
Release.
3839

3940
`AuthPASETO.load_config()` now expects a callback that returns either a plain
4041
mapping or a `pydantic-settings` `BaseSettings` instance. A minimal setup looks
@@ -63,7 +64,8 @@ headers`.
6364

6465
The release workflow runs tests, builds the package, builds the docs, creates
6566
the next semantic version, updates the generated changelog, publishes the
66-
distribution to GitHub Packages, and deploys the latest docs to GitHub Pages.
67+
distribution as GitHub Release assets and workflow artifacts, and deploys the
68+
latest docs to GitHub Pages.
6769
The first automated release should start from a bootstrap tag that matches the
6870
current project version.
6971

0 commit comments

Comments
 (0)