adaptive-lighting/.github/workflows/deploy-webapp.yml
Bas Nijholt 79fa01a235 Fix webapp for Shinylive deployment by separating requirements
Shinylive/Pyodide was failing because it tried to install packages that
are already pre-built in Pyodide (like matplotlib and its C-extension
dependencies).

Changes:
- Split requirements into two files:
  - requirements.txt: Minimal deps for Shinylive (only astral, shiny, shinyswatch)
  - requirements-dev.txt: Full deps for local development (includes matplotlib)
- Update README to use requirements-dev.txt for local development
- Update GitHub workflow to use requirements-dev.txt
- Remove matplotlib version pinning as Pyodide provides it

This fixes the "Can't find a pure Python 3 wheel for 'contourpy'" error
when loading the webapp at https://basnijholt.github.io/adaptive-lighting/
2025-07-21 15:33:07 -07:00

63 lines
1.8 KiB
YAML

# Simple workflow for deploying WebAssembly app to GitHub Pages
name: Deploy WebAssembly app to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
# Single deploy job since we're just deploying
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set Up Python
uses: actions/setup-python@v5
with:
python-version: 3.13.5
- name: Install Dependencies
run: |
pip install -r webapp/requirements-dev.txt
pip install shinylive
- name: Build the WebAssembly app
run: |
set -ex
cp custom_components/adaptive_lighting/color_and_brightness.py webapp/color_and_brightness.py
sed -i 's/homeassistant.util.color/homeassistant_util_color/g' "webapp/color_and_brightness.py"
shinylive export webapp site
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload the 'site' directory, where your app has been built
path: "site"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4