2023-02-11 23:33:14 -05:00
# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
2023-02-12 00:21:02 -05:00
name : Publish
2023-02-11 23:33:14 -05:00
on :
release :
types : [ published]
permissions :
contents : read
jobs :
deploy :
runs-on : [ self-hosted, linux]
steps :
- uses : actions/checkout@v2
with :
fetch-depth : 1
- name : Set up Python 3.9
uses : actions/setup-python@v4
with :
python-version : 3.9
- name : Install Poetry Action
uses : snok/install-poetry@v1.3.3
- name : Cache Poetry virtualenv
uses : actions/cache@v3
id : cache
with :
path : ~/.virtualenvs
key : poetry-${{ hashFiles('**/poetry.lock') }}
restore-keys : |
poetry-${{ hashFiles('**/poetry.lock') }}
- name : Install Dependencies
run : poetry install
if : steps.cache.outputs.cache-hit != 'true'
- name : Test with pytest
run : poetry run pytest -m "not skip_ci" tests
2023-02-12 00:21:02 -05:00
2023-02-12 00:26:30 -05:00
- name : Build package
run : poetry build
2023-02-12 00:21:02 -05:00
- name : Upload a Build Artifact
uses : actions/upload-artifact@v3.1.2
with :
# Artifact name
name : "pip package"
# A file, directory or wildcard pattern that describes what to upload
path : "dist/*"
# The desired behavior if no files are found using the provided path.
if-no-files-found : error
2023-02-11 23:33:14 -05:00
- name : Publish to PyPI
run : poetry publish --build --username __token__ --password ${{ secrets.PYPI_API_TOKEN }}