This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish to PyPI [Production] | |
on: | |
push: | |
workflow_dispatch: | |
release: | |
types: [published] | |
jobs: | |
publish: | |
name: Publish | |
runs-on: ubuntu-latest | |
steps: | |
#---------------------------------------------- | |
# check-out repo and set-up python | |
#---------------------------------------------- | |
- name: Check out repository | |
uses: actions/checkout@v2 | |
- name: Set up python | |
id: setup-python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
#---------------------------------------------- | |
# ----- install & configure poetry ----- | |
#---------------------------------------------- | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
installer-parallel: true | |
#---------------------------------------------- | |
# load cached venv if cache exists | |
#---------------------------------------------- | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v2 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ github.event.repository.name }}-${{ hashFiles('**/poetry.lock') }} | |
#---------------------------------------------- | |
# install dependencies if cache does not exist | |
#---------------------------------------------- | |
- name: Install dependencies | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
run: poetry install --no-interaction --no-root | |
#------------------------------------------------------------------------------------------------ | |
# Here we use version-increment to fetch the latest tagged version (we won't increment it though) | |
#------------------------------------------------------------------------------------------------ | |
- name: Get next version | |
uses: reecetech/[email protected] | |
id: version | |
with: | |
scheme: semver | |
increment: patch | |
#----------------------------------------------------------------------------- | |
# Tell poetry to use the `current-version` that was found by the previous step | |
#----------------------------------------------------------------------------- | |
- name: Update pyproject.toml | |
run: | | |
echo "Current version - ${{ steps.version.outputs.current-version }}" | |
poetry version ${{ steps.version.outputs.current-version }} | |
echo "Updated version - $(poetry version -s)" | |
#---------------------------------------------- | |
# Attempt push to test-pypi | |
#---------------------------------------------- | |
# - name: Build and publish to pypi | |
# uses: JRubics/[email protected] | |
# with: | |
# pypi_token: ${{ secrets.PROD_PYPI_TOKEN }} |