Skip to content

Release 0.14.1; require Python 3.11+, test on 3.11/3.13/3.14 #33

Release 0.14.1; require Python 3.11+, test on 3.11/3.13/3.14

Release 0.14.1; require Python 3.11+, test on 3.11/3.13/3.14 #33

Workflow file for this run

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