# 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. name: Upload to PyPI 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 - name: Publish to PyPI run: poetry publish --build --username __token__ --password ${{ secrets.PYPI_API_TOKEN }}