From c1e3a78093a764b4f78299353c28b3e7c9596a63 Mon Sep 17 00:00:00 2001 From: erexer <13180883+erexer@users.noreply.github.com> Date: Wed, 5 Mar 2025 12:26:45 -0800 Subject: [PATCH] move pypi push to deploy and dev_deploy --- .github/workflows/02_deploy.yml | 44 ++++++++ .github/workflows/03_dev_deploy.yml | 49 +++++++++ .github/workflows/04_publish-to-pypi.yml | 122 ----------------------- 3 files changed, 93 insertions(+), 122 deletions(-) delete mode 100644 .github/workflows/04_publish-to-pypi.yml diff --git a/.github/workflows/02_deploy.yml b/.github/workflows/02_deploy.yml index ce43945..62bf779 100644 --- a/.github/workflows/02_deploy.yml +++ b/.github/workflows/02_deploy.yml @@ -72,3 +72,47 @@ jobs: directory: landing/build force: true github_token: ${{ secrets.GITHUB_TOKEN }} + build-distribution: + name: Build distribution + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.10.x" + - name: Install pypa/build + run: >- + python3 -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: python3 -m build + - name: Store the distribution packages + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + publish-to-pypi: + name: >- + Publish Python distribution to PyPI + needs: + - build-distribution + runs-on: ubuntu-latest + environment: + name: pypi + url: https://pypi.org/p/msdbook + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/03_dev_deploy.yml b/.github/workflows/03_dev_deploy.yml index ad90002..29935bf 100755 --- a/.github/workflows/03_dev_deploy.yml +++ b/.github/workflows/03_dev_deploy.yml @@ -64,3 +64,52 @@ jobs: directory: deploy force: true github_token: ${{ secrets.GITHUB_TOKEN }} + + build-distribution: + name: Build distribution + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.10.x" + - name: Install pypa/build + run: >- + python3 -m + pip install + build + --user + - name: Build a binary wheel and a source tarball + run: python3 -m build + - name: Store the distribution packages + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + publish-to-testpypi: + name: Publish to TestPyPI + if: startsWith(github.ref, 'refs/tags/') # only publish to test PyPI on tag pushes + needs: + - build-distribution + runs-on: ubuntu-latest + + environment: + name: testpypi + url: https://test.pypi.org/p/msdbook + + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + - name: Publish distribution to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ diff --git a/.github/workflows/04_publish-to-pypi.yml b/.github/workflows/04_publish-to-pypi.yml deleted file mode 100644 index bd041e8..0000000 --- a/.github/workflows/04_publish-to-pypi.yml +++ /dev/null @@ -1,122 +0,0 @@ -# This GitHub Action will only push to PyPI if a release is created. A release is automatically created during the `02_deploy.yml` action. - -name: Publish Python to PyPI - -on: - release: - types: [published] - -jobs: - build: - name: Build distribution - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.10.x" - - name: Install pypa/build - run: >- - python3 -m - pip install - build - --user - - name: Build a binary wheel and a source tarball - run: python3 -m build - - name: Store the distribution packages - uses: actions/upload-artifact@v4 - with: - name: python-package-distributions - path: dist/ - - publish-to-pypi: - name: >- - Publish Python distribution to PyPI - needs: - - build - runs-on: ubuntu-latest - environment: - name: pypi - url: https://pypi.org/p/msdbook - permissions: - id-token: write # IMPORTANT: mandatory for trusted publishing - - steps: - - name: Download all the dists - uses: actions/download-artifact@v4 - with: - name: python-package-distributions - path: dist/ - - name: Publish distribution to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - - github-release: - name: >- - Sign the Python distribution with Sigstore - and upload them to GitHub Release - needs: - - publish-to-pypi - runs-on: ubuntu-latest - - permissions: - contents: write # IMPORTANT: mandatory for making GitHub Releases - id-token: write # IMPORTANT: mandatory for sigstore - - steps: - - name: Download all the dists - uses: actions/download-artifact@v4 - with: - name: python-package-distributions - path: dist/ - - name: Sign the dists with Sigstore - uses: sigstore/gh-action-sigstore-python@v3.0.0 - with: - inputs: >- - ./dist/*.tar.gz - ./dist/*.whl - - name: Create GitHub Release - env: - GITHUB_TOKEN: ${{ github.token }} - run: >- - gh release create - '${{ github.ref_name }}' - --repo '${{ github.repository }}' - --notes "" - - name: Upload artifact signatures to GitHub Release - env: - GITHUB_TOKEN: ${{ github.token }} - # Upload to GitHub Release using the `gh` CLI. - # `dist/` contains the built packages, and the - # sigstore-produced signatures and certificates. - run: >- - gh release upload - '${{ github.ref_name }}' dist/** - --repo '${{ github.repository }}' - - publish-to-testpypi: - name: Publish to TestPyPI - if: startsWith(github.ref, 'refs/tags/') # only publish to test PyPI on tag pushes - needs: - - build - runs-on: ubuntu-latest - - environment: - name: testpypi - url: https://test.pypi.org/p/msdbook - - permissions: - id-token: write # IMPORTANT: mandatory for trusted publishing - - steps: - - name: Download all the dists - uses: actions/download-artifact@v4 - with: - name: python-package-distributions - path: dist/ - - name: Publish distribution to TestPyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - repository-url: https://test.pypi.org/legacy/ - verbose: true