Skip to content

Bump @biomejs/biome from 2.4.10 to 2.4.11 in /webapp #836

Bump @biomejs/biome from 2.4.10 to 2.4.11 in /webapp

Bump @biomejs/biome from 2.4.10 to 2.4.11 in /webapp #836

name: IKEA Obegränsad LED wall lamp
on:
merge_group:
types:
- checks_requested
pull_request:
branches:
- main
workflow_dispatch:
permissions:
contents: read
jobs:
context:
name: Context
runs-on: ubuntu-latest
outputs:
node-cache: ${{ steps.nodejs.outputs.cache }}
pio-environments: ${{ steps.platformio.outputs.environments }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version-file: pyproject.toml
python-version: 3.14
activate-environment: true
- name: Set up Python packages
run: uv sync --only-group nodejs --only-group platformio
- name: Node.js cache
id: nodejs
run: echo "cache=$(npm config get cache)" >> "$GITHUB_OUTPUT"
- name: PlatformIO environments
id: platformio
run: echo "environments=$(pio project config --json-output | jq -c '[.[] | .[0] | select(startswith("env:")) | sub("^env:"; "")]')" >> "$GITHUB_OUTPUT"
default:
name: Default
needs: context
runs-on: ubuntu-latest
strategy:
matrix:
environment: ${{ fromJSON(needs.context.outputs.pio-environments) }}
toolchain:
- python-version: '3.10'
- python-version: 3.14
exclude:
- environment: adafruit_qtpy_esp32s2
toolchain:
python-version: '3.10'
- environment: adafruit_qtpy_esp32s3_n4r2
toolchain:
python-version: '3.10'
- environment: adafruit_qtpy_esp32s3_nopsram
toolchain:
python-version: '3.10'
- environment: lolin_d32
toolchain:
python-version: '3.10'
- environment: lolin_d32_pro
toolchain:
python-version: '3.10'
- environment: lolin_s3_mini
toolchain:
python-version: '3.10'
- environment: seeed_xiao_esp32c3
toolchain:
python-version: '3.10'
- environment: seeed_xiao_esp32c6
toolchain:
python-version: '3.10'
- environment: seeed_xiao_esp32s3
toolchain:
python-version: '3.10'
- environment: wemos_d1_mini32
toolchain:
python-version: '3.10'
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Cache for Node.js
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: nodejs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('webapp/package-lock.json') }}
path: ${{ needs.context.outputs.node-cache }}
- name: Set up Cache for PlatformIO
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: platformio-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('platformio.ini') }}
path: .platformio/.cache
- name: Set up uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version-file: pyproject.toml
python-version: ${{ matrix.toolchain.python-version }}
activate-environment: true
- name: Set up PlatformIO
run: uv sync --only-group platformio
- name: PlatformIO build
run: |
echo "IKEA_OBEGRANSAD='true'" >> .env
cat <<'EOL' > firmware/include/config/secrets.h
#pragma once
#define PIN_CS 1
#define PIN_MOSI 2
#define PIN_OE 3
#define PIN_SCLK 4
#define PIN_SW2 5
#define WIFI_KEY "redacted"
#define WIFI_SSID "redacted"
EOL
pio run -e ${{ matrix.environment }}
minimal:
name: Minimal
needs: context
runs-on: ubuntu-latest
strategy:
matrix:
environment: ${{ fromJSON(needs.context.outputs.pio-environments) }}
toolchain:
- python-version: '3.10'
- python-version: 3.14
exclude:
- environment: adafruit_qtpy_esp32s2
toolchain:
python-version: '3.10'
- environment: adafruit_qtpy_esp32s3_n4r2
toolchain:
python-version: '3.10'
- environment: adafruit_qtpy_esp32s3_nopsram
toolchain:
python-version: '3.10'
- environment: lolin_d32
toolchain:
python-version: '3.10'
- environment: lolin_d32_pro
toolchain:
python-version: '3.10'
- environment: lolin_s3_mini
toolchain:
python-version: '3.10'
- environment: seeed_xiao_esp32c3
toolchain:
python-version: '3.10'
- environment: seeed_xiao_esp32c6
toolchain:
python-version: '3.10'
- environment: seeed_xiao_esp32s3
toolchain:
python-version: '3.10'
- environment: wemos_d1_mini32
toolchain:
python-version: '3.10'
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Cache for PlatformIO
continue-on-error: true
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: platformio-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('platformio.ini') }}
path: .platformio/.cache
- name: Set up uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version-file: pyproject.toml
python-version: ${{ matrix.toolchain.python-version }}
activate-environment: true
- name: Set up PlatformIO
run: uv sync --only-group platformio
- name: PlatformIO build
run: |
cat <<'EOL' > .env
EXTENSION_BUTTON='true'
HOSTNAME='obegransad'
IKEA_OBEGRANSAD='true'
MODE_CIRCLE='true'
MODE_LINES='true'
MODE_NOISE='true'
MODE_RAIN='true'
MODE_SCAN='true'
MODE_STARS='true'
NAME='Obegränsad'
EOL
cat <<'EOL' > firmware/include/config/secrets.h
#pragma once
#define PIN_CS 1
#define PIN_MOSI 2
#define PIN_OE 3
#define PIN_SCLK 4
#define PIN_SW2 5
#define WIFI_KEY "redacted"
#define WIFI_SSID "redacted"
EOL
pio run -e ${{ matrix.environment }}
typical:
name: Typical
needs: context
runs-on: ubuntu-latest
strategy:
matrix:
environment: ${{ fromJSON(needs.context.outputs.pio-environments) }}
toolchain:
- python-version: '3.10'
- python-version: 3.14
exclude:
- environment: adafruit_qtpy_esp32s2
- environment: adafruit_qtpy_esp32s3_n4r2
- environment: adafruit_qtpy_esp32s3_nopsram
toolchain:
python-version: '3.10'
- environment: esp32-c3-devkitm-1
- environment: esp32-c5-devkitc-1
- environment: esp32-c6-devkitm-1
- environment: esp32dev
- environment: lolin_d32
- environment: lolin_d32_pro
- environment: lolin_s3_mini
- environment: seeed_xiao_esp32c3
- environment: seeed_xiao_esp32c6
- environment: seeed_xiao_esp32s3
toolchain:
python-version: '3.10'
- environment: wemos_d1_mini32
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Cache for Node.js
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: nodejs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('webapp/package-lock.json') }}
path: ${{ needs.context.outputs.node-cache }}
- name: Set up Cache for PlatformIO
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: platformio-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('platformio.ini') }}
path: .platformio/.cache
- name: Set up uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version-file: pyproject.toml
python-version: ${{ matrix.toolchain.python-version }}
activate-environment: true
- name: Set up PlatformIO
run: uv sync --only-group platformio
- name: PlatformIO build
run: |
cat <<'EOL' > .env
EXTENSION_ALEXA='true'
EXTENSION_BUTTON='true'
EXTENSION_HEAP='true'
EXTENSION_HOMEASSISTANT='true'
EXTENSION_MESSAGE='true'
EXTENSION_MQTT='true'
EXTENSION_OTA='true'
EXTENSION_PLAYLIST='true'
EXTENSION_RESTFUL='true'
EXTENSION_SERVERSENTEVENTS='true'
EXTENSION_SIGNAL='true'
EXTENSION_WEBAPP='true'
EXTENSION_WEBSOCKET='true'
FONT_LARGE='true'
FONT_MEDIUM='true'
FONT_MEDIUMBOLD='true'
FONT_MEDIUMWIDE='true'
FONT_MINI='true'
FONT_SMALL='true'
HOSTNAME='obegransad'
IKEA_OBEGRANSAD='true'
MODE_ANIMATION='true'
MODE_ARROW='true'
MODE_BINARYCLOCK='true'
MODE_BINARYEPOCH='true'
MODE_BLINDS='true'
MODE_BLINK='true'
MODE_BREAKOUTCLOCK='true'
MODE_BRIGHT='true'
MODE_CIRCLE='true'
MODE_CLOCK='true'
MODE_COUNTDOWN='true'
MODE_DRAW='true'
MODE_EQUALIZER='true'
MODE_FIREWORK='true'
MODE_FLIES='true'
MODE_GAMEOFLIFE='true'
MODE_GLITTER='true'
MODE_HOMETHERMOMETER='true'
MODE_JAGGEDWAVEFORM='true'
MODE_LEAFFALL='true'
MODE_LINES='true'
MODE_METABALLS='true'
MODE_NOISE='true'
MODE_PINGPONG='true'
MODE_PIXELSEQUENCE='true'
MODE_RAIN='true'
MODE_RING='true'
MODE_SCAN='true'
MODE_SMOOTHWAVEFORM='true'
MODE_SNAKE='true'
MODE_STARS='true'
MODE_STREAM='true'
MODE_TICKER='true'
MODE_WAVEFORM='true'
MODE_WEATHER='true'
NAME='Obegränsad'
WEATHER_OPENMETEO='true'
WEATHER_WTTRIN='true'
WEATHER_YR='true'
EOL
cat <<'EOL' > firmware/include/config/secrets.h
#pragma once
#define LATITUDE "0.000"
#define LOCATION "redacted"
#define LONGITUDE "0.000"
#define MQTT_HOST "mqtt.local"
#define MQTT_KEY "redacted"
#define MQTT_USER "redacted"
#define PIN_CS 1
#define PIN_MOSI 2
#define PIN_OE 3
#define PIN_SCLK 4
#define PIN_SW2 5
#define WIFI_KEY "redacted"
#define WIFI_SSID "redacted"
EOL
pio run -e ${{ matrix.environment }}
extensive:
name: Extensive
needs: context
runs-on: ubuntu-latest
strategy:
matrix:
environment: ${{ fromJSON(needs.context.outputs.pio-environments) }}
toolchain:
- python-version: '3.10'
- python-version: 3.14
exclude:
- environment: adafruit_qtpy_esp32s2
- environment: adafruit_qtpy_esp32s3_n4r2
- environment: adafruit_qtpy_esp32s3_nopsram
toolchain:
python-version: '3.10'
- environment: esp32-c3-devkitm-1
- environment: esp32-c5-devkitc-1
- environment: esp32-c6-devkitm-1
- environment: esp32dev
- environment: lolin_d32
- environment: lolin_d32_pro
- environment: lolin_s3_mini
- environment: seeed_xiao_esp32c3
- environment: seeed_xiao_esp32c6
- environment: seeed_xiao_esp32s3
toolchain:
python-version: '3.10'
- environment: wemos_d1_mini32
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Cache for Node.js
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: nodejs-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('webapp/package-lock.json') }}
path: ${{ needs.context.outputs.node-cache }}
- name: Set up Cache for PlatformIO
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
with:
key: platformio-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('platformio.ini') }}
path: .platformio/.cache
- name: Set up uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version-file: pyproject.toml
python-version: ${{ matrix.toolchain.python-version }}
activate-environment: true
- name: Set up PlatformIO
run: uv sync --only-group platformio
- name: PlatformIO build'
run: |
cat <<'EOL' > .env
EXTENSION_ALEXA='true'
EXTENSION_BUTTON='true'
EXTENSION_HEAP='true'
EXTENSION_HOMEASSISTANT='true'
EXTENSION_INFRARED='true'
EXTENSION_MESSAGE='true'
EXTENSION_MICROPHONE='true'
EXTENSION_MQTT='true'
EXTENSION_OTA='true'
EXTENSION_PHOTOCELL='true'
EXTENSION_PLAYLIST='true'
EXTENSION_RESTFUL='true'
EXTENSION_RTC='true'
EXTENSION_SERVERSENTEVENTS='true'
EXTENSION_SIGNAL='true'
EXTENSION_WEBAPP='true'
EXTENSION_WEBSOCKET='true'
FONT_BRAILLE='true'
FONT_LARGE='true'
FONT_MEDIUM='true'
FONT_MEDIUMBOLD='true'
FONT_MEDIUMWIDE='true'
FONT_MINI='true'
FONT_SMALL='true'
HOSTNAME='obegransad'
IKEA_OBEGRANSAD='true'
MODE_ANIMATION='true'
MODE_ARROW='true'
MODE_BINARYCLOCK='true'
MODE_BINARYEPOCH='true'
MODE_BLINDS='true'
MODE_BLINK='true'
MODE_BREAKOUTCLOCK='true'
MODE_BRIGHT='true'
MODE_CIRCLE='true'
MODE_CLOCK='true'
MODE_COUNTDOWN='true'
MODE_DRAW='true'
MODE_EQUALIZER='true'
MODE_FIREWORK='true'
MODE_FLIES='true'
MODE_GAMEOFLIFE='true'
MODE_GLITTER='true'
MODE_HOMETHERMOMETER='true'
MODE_JAGGEDWAVEFORM='true'
MODE_LEAFFALL='true'
MODE_LINES='true'
MODE_METABALLS='true'
MODE_NOISE='true'
MODE_PINGPONG='true'
MODE_PIXELSEQUENCE='true'
MODE_RAIN='true'
MODE_RING='true'
MODE_SCAN='true'
MODE_SMOOTHWAVEFORM='true'
MODE_SNAKE='true'
MODE_STARS='true'
MODE_STREAM='true'
MODE_TICKER='true'
MODE_WAVEFORM='true'
MODE_WEATHER='true'
NAME='Obegränsad'
OTA_KEY='redacted'
TEMPERATURE_UNIT='°C'
TIME_ZONE='Etc/Universal'
WEATHER_GOOGLE='true'
WEATHER_HOMEASSISTANT='true'
WEATHER_OPENMETEO='true'
WEATHER_OPENWEATHER='true'
WEATHER_WORLDWEATHERONLINE='true'
WEATHER_WTTRIN='true'
WEATHER_YR='true'
EOL
cat <<'EOL' > firmware/include/config/secrets.h
#pragma once
#define FRAME_RATE 60
#define GOOGLEWEATHER_KEY "redacted"
#define HOMEASSISTANT_ENTITY "weather.forecast_home"
#define HOMEASSISTANT_HOST "homeassistant.local"
#define HOMEASSISTANT_KEY "redacted"
#define HOMEASSISTANT_PORT 8123
#define LATITUDE "0.000"
#define LOCATION "redacted"
#define LONGITUDE "0.000"
#define MQTT_HOST "mqtt.local"
#define MQTT_PORT 1883
#define MQTT_USER "redacted"
#define MQTT_KEY "redacted"
#define OPENMETEO_KEY "redacted"
#define OPENWEATHER_KEY "redacted"
#define PIN_CS 1
#define PIN_INT 2
#define PIN_IR 3
#define PIN_LDR 4
#define PIN_MIC 5
#define PIN_MOSI 6
#define PIN_OE 7
#define PIN_SCL 8
#define PIN_SCLK 9
#define PIN_SDA 10
#define PIN_SW2 11
#define RTC_DS3231
#define WIFI_COUNTRY "01"
#define WIFI_KEY "redacted"
#define WIFI_SSID "redacted"
#define WORLDWEATHERONLINE_KEY "redacted"
EOL
pio run -e ${{ matrix.environment }}