Release 0.14.1; require Python 3.11+, test on 3.11/3.13/3.14 #33
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Publish | |
| on: | |
| push: | |
| tags: | |
| - "v*.*.*" | |
| pull_request: | |
| jobs: | |
| # MARK: - Build sdist + universal wheel | |
| # espbridge is pure-Python, so one `py3-none-any` wheel covers every platform. | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: astral-sh/setup-uv@v5 | |
| # MARK: - Build the bundled firmware image (Huge APP) shipped in the wheel | |
| - uses: arduino/setup-arduino-cli@v2 | |
| - name: Install ESP32 core | |
| run: | | |
| arduino-cli core update-index \ | |
| --additional-urls https://espressif.github.io/arduino-esp32/package_esp32_index.json | |
| arduino-cli core install esp32:esp32@3.3.6 \ | |
| --additional-urls https://espressif.github.io/arduino-esp32/package_esp32_index.json | |
| - name: Build firmware image | |
| run: | | |
| uv run --with esptool python tools/build_firmware.py | |
| - name: Build sdist + wheel | |
| working-directory: python | |
| run: uv build -o ../dist/dist-build | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/dist-build/* | |
| - name: Clean local build folder | |
| run: rm -rf dist/dist-build | |
| # MARK: - Publish to PyPI on tag push (trusted publishing via OIDC) | |
| publish: | |
| needs: build | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| # Triggered only by v*.*.* tags (see `on.push.tags` above). | |
| runs-on: ubuntu-latest | |
| environment: pypi | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/dist-build | |
| - uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| packages-dir: dist/dist-build |