From 1c3a90f98e431b4f1ed20716b7e14abab50c1349 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 29 Sep 2025 12:52:21 -0400 Subject: [PATCH 1/2] switch to trusted publishing + general update --- .github/workflows/pythonpublish.yml | 76 ++++++++++++++++++++++++----- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml index 592bed54..738e5909 100644 --- a/.github/workflows/pythonpublish.yml +++ b/.github/workflows/pythonpublish.yml @@ -1,26 +1,76 @@ -name: Upload to PyPi +name: Package build + on: + pull_request: push: + branches: + - main tags: - "v*" jobs: - deploy: + build: + name: Build wheel and sdist + if: github.repository == 'pvlib/pvanalytics' runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + # fetch all commits and tags so versioneer works + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set up Python - uses: actions/setup-python@v1 + uses: actions/setup-python@v5 with: - python-version: '3.x' - - name: Install dependencies + # Python version should be the minimum supported version + python-version: "3.10" + + - name: Install build tools run: | python -m pip install --upgrade pip - pip install build twine - - name: Build and publish - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + python -m pip install build + python -m pip install twine + + - name: Build packages + run: python -m build + + - name: List distribution file sizes + run: du -h dist/* + + - name: Check metadata verification + run: python -m twine check --strict dist/* + + - name: Ensure that the wheel installs successfully run: | - python -m build - twine upload dist/* + mkdir ./tmp + pip install $(find dist -type f -name "*.whl") --target=./tmp + + - name: List installed file sizes + run: du -h pvanalytics + working-directory: ./tmp + + - name: Store the distribution packages + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + publish: + name: Release dist files to PyPI + # only publish distribution to PyPI for tagged commits + if: startsWith(github.ref, 'refs/tags/v') + needs: + - build + runs-on: ubuntu-latest + permissions: + id-token: write # for PyPI trusted publishing + + steps: + - name: Download all dist files + 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 From c5a68e2fc6a73fc0adfafae8fbf9f98f8703803d Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 29 Sep 2025 12:52:47 -0400 Subject: [PATCH 2/2] rename workflow --- .github/workflows/{pythonpublish.yml => publish.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{pythonpublish.yml => publish.yml} (100%) diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/publish.yml similarity index 100% rename from .github/workflows/pythonpublish.yml rename to .github/workflows/publish.yml