From 8fee27f96e4685f9c38dae7b2f3c8cdca2f32011 Mon Sep 17 00:00:00 2001 From: Bart Schilperoort Date: Tue, 22 Oct 2024 15:40:21 +0200 Subject: [PATCH] Update PyPI publish workflow --- .github/workflows/publish-to-pypi.yml | 61 ++++++++++++++++----------- 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 92299a8..515327b 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -1,36 +1,49 @@ -name: Publish Python distributions to PyPI and TestPyPI +name: Publish Python 🐍 distribution 📦 to PyPI on: release: - types: [published] - + types: [created] jobs: - build-n-publish: - name: Build and publish Python distributions to PyPI and TestPyPI - runs-on: ubuntu-20.04 + build: + name: Build distribution 📦 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@master - - name: Set up Python 3.10 - uses: actions/setup-python@v1 + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v4 with: - python-version: "3.10" + python-version: "3.x" - name: Install pypa/build - run: python -m pip install build hatch --user + run: >- + python3 -m + pip install + build + --user - name: Build a binary wheel and a source tarball - run: python -m build --sdist --wheel --outdir dist/ - - # Publish the package to test.pypi for every rc version - - name: Publish distribution to Test PyPI - if: "startsWith(github.ref, 'refs/tags') && contains(github.ref, 'rc')" - uses: pypa/gh-action-pypi-publish@master + run: python3 -m build + - name: Store the distribution packages + uses: actions/upload-artifact@v3 with: - password: ${{ secrets.test_pypi_password }} - repository_url: http://test.pypi.org/legacy/ + name: python-package-distributions + path: dist/ - # Publish a tagged version on PyPI for non-release candidates - - name: Publish distribution to PyPI - if: "startsWith(github.ref, 'refs/tags') && !contains(github.ref, 'rc')" - uses: pypa/gh-action-pypi-publish@master + publish-to-pypi: + name: >- + Publish Python 🐍 distribution 📦 to PyPI + needs: + - build + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/era5cli + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + steps: + - name: Download all the dists + uses: actions/download-artifact@v3 with: - password: ${{ secrets.pypi_password }} + name: python-package-distributions + path: dist/ + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1