name: publish distributions on: push: branches: - main tags: - v* pull_request: branches: - main release: types: [published] workflow_dispatch: jobs: build-and-publish: name: Build and publish Python distro to (Test)PyPI runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Python 3.9 uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install build and twine run: | python -m pip install --upgrade pip setuptools wheel python -m pip install build twine python -m pip list - name: Build a sdist and a wheel run: python -m build --outdir dist/ . - name: Verify the distribution run: twine check dist/* - name: List contents of sdist run: python -m tarfile --list dist/prettymaps-*.tar.gz - name: List contents of wheel run: python -m zipfile --list dist/prettymaps-*.whl - name: Publish distribution 📦 to Test PyPI # publish to TestPyPI on tag events if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository == 'marceloprates/prettymaps' uses: pypa/gh-action-pypi-publish@v1.4.2 with: password: ${{ secrets.test_pypi_password }} repository_url: https://test.pypi.org/legacy/ - name: Publish distribution 📦 to PyPI # publish to PyPI on releases if: github.event_name == 'release' && github.event.action == 'published' && github.repository == 'marceloprates/prettymaps' uses: pypa/gh-action-pypi-publish@v1.4.2 with: password: ${{ secrets.pypi_password }}