55 lines
1.5 KiB
Markdown
55 lines
1.5 KiB
Markdown
# PyPI publish GitHub Action
|
|
This action allows you to upload your [Python distribution package](
|
|
https://packaging.python.org/glossary/#term-distribution-package) to
|
|
PyPI.
|
|
|
|
|
|
## Usage
|
|
|
|
To use the action add the following step to your workflow file (e.g.:
|
|
`.github/workflows/main.yml`)
|
|
|
|
|
|
```yml
|
|
- name: Publish a Python distribution to PyPI
|
|
uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.pypi_password }}
|
|
```
|
|
|
|
A common use case is to upload packages only on a tagged commit, to do so add a
|
|
filter to the step:
|
|
|
|
|
|
```yml
|
|
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
|
|
```
|
|
|
|
So the full step would look like:
|
|
|
|
|
|
```yml
|
|
- name: Publish package
|
|
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
|
|
uses: pypa/gh-action-pypi-publish@master
|
|
with:
|
|
user: __token__
|
|
password: ${{ secrets.pypi_password }}
|
|
```
|
|
|
|
The example above uses the new [API token](https://pypi.org/help/#apitoken)
|
|
feature of PyPI, which is recommended to restrict the access the action has.
|
|
|
|
The secret used in `${{ secrets.pypi_password }}` needs to be created on the settings
|
|
page of your project on GitHub. See [Creating & using secrets].
|
|
|
|
|
|
## License
|
|
|
|
The Dockerfile and associated scripts and documentation in this project
|
|
are released under the [BSD 3-clause license](LICENSE.md).
|
|
|
|
|
|
[Creating & using secrets]: https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables
|