Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/jpegio.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# jpegio from a bare clone, the way a user builds it: build_mp.py fetches
# MicroPython and the pinned modules itself. Its golden corpus without LVGL,
# then beside lvgl-micropython as LVGL's JPEG decoder. (These checks moved
# then beside LVGL (omnipython-lvgl) as its JPEG decoder. (These checks moved
# here with jpegio from displayif's clean-build workflow, 2026-10-06.)
name: jpegio

Expand Down Expand Up @@ -72,11 +72,11 @@ jobs:
sudo apt-get update
sudo apt-get install -y libffi-dev pkg-config

- name: Build the unix port with jpegio and lvgl-micropython
run: python3 build_mp.py --port unix --modules jpegio,lvgl-micropython
- name: Build the unix port with jpegio and lvgl
run: python3 build_mp.py --port unix --modules jpegio,lvgl

- name: One TJpgDec in the firmware, and it is jpegio's
# LVGL's own tjpgd.o compiles empty (LV_USE_TJPGD 0 in lvgl-bindings),
# LVGL's own tjpgd.o compiles empty (LV_USE_TJPGD 0 in omnipython-lvgl),
# so exactly one object defines jd_prepare, and jpegio's two objects
# call into it.
working-directory: builds/unix/standard
Expand Down
42 changes: 14 additions & 28 deletions .github/workflows/release-firmware.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ on:
description: Build the Raspberry Pi Pico 2 and the Pimoroni Pico Plus 2 W too (off until a board is on the bench)
default: false
type: boolean
lvgl-circuitpython-ref:
description: lvgl-circuitpython branch, tag or commit for the CircuitPython builds (left empty, it takes the commit modules.lock pins)
omnipython-lvgl-ref:
description: omnipython-lvgl branch, tag or full 40-character commit for every LVGL build (left empty, it takes the commit modules.lock pins)
default: ''
type: string
schedule:
Expand All @@ -46,6 +46,7 @@ on:
paths:
- '.github/workflows/release-firmware.yml'
- 'scripts/release_firmware.py'
- 'scripts/pin_lvgl_ref.sh'
- 'scripts/stage_firmware_page.py'
- 'test_release_firmware.py'
- 'test_stage_firmware_page.py'
Expand Down Expand Up @@ -101,18 +102,11 @@ jobs:
steps:
- uses: actions/checkout@v7

- name: lvgl-circuitpython, which the CircuitPython builds compile in
if: matrix.interpreter == 'circuitpython'
- name: omnipython-lvgl at the ref asked for, in modules.lock
if: inputs.omnipython-lvgl-ref != ''
env:
LVGL_CP_REF: ${{ inputs.lvgl-circuitpython-ref }}
run: |
# empty input: the commit modules.lock pins
LVGL_CP_REF="${LVGL_CP_REF:-$(awk '$1=="lvgl-circuitpython"{print $3}' "$GITHUB_WORKSPACE/modules.lock")}"
mkdir -p "$RUNNER_TEMP/ws" && cd "$RUNNER_TEMP/ws"
git clone --quiet --depth 1 --branch "$LVGL_CP_REF" https://github.com/PyDevices/lvgl-circuitpython.git \
|| { git clone --quiet https://github.com/PyDevices/lvgl-circuitpython.git \
&& git -C lvgl-circuitpython checkout --quiet "$LVGL_CP_REF"; }
git -C lvgl-circuitpython rev-parse HEAD | tee "$RUNNER_TEMP/lvgl-circuitpython.commit"
REF: ${{ inputs.omnipython-lvgl-ref }}
run: scripts/pin_lvgl_ref.sh "$REF"

- name: Packages the builds need
run: |
Expand Down Expand Up @@ -162,9 +156,7 @@ jobs:
- name: Build ${{ matrix.id }}
run: |
start=$(date +%s)
ws=()
[[ "${{ matrix.interpreter }}" == circuitpython ]] && ws=(--ws "$RUNNER_TEMP/ws")
python3 scripts/release_firmware.py build "${{ matrix.id }}" out "${ws[@]}"
python3 scripts/release_firmware.py build "${{ matrix.id }}" out
{
echo "### ${{ matrix.id }}"
echo "- toolchain cache: ${{ steps.deps.outputs.cache-hit == 'true' && 'hit' || (matrix.deps == 'none' && 'none needed' || 'miss') }}"
Expand Down Expand Up @@ -197,17 +189,12 @@ jobs:
merge-multiple: true
path: in

- name: lvgl-circuitpython's commit
id: lvgl
# The same pin the builds took, so firmware.json's modules.lock says it.
- name: omnipython-lvgl at the ref asked for, in modules.lock
if: inputs.omnipython-lvgl-ref != ''
env:
LVGL_CP_REF: ${{ inputs.lvgl-circuitpython-ref }}
run: |
# empty input: the commit modules.lock pins
LVGL_CP_REF="${LVGL_CP_REF:-$(awk '$1=="lvgl-circuitpython"{print $3}' "$GITHUB_WORKSPACE/modules.lock")}"
git clone --quiet --depth 1 --branch "$LVGL_CP_REF" https://github.com/PyDevices/lvgl-circuitpython.git lvgl-cp \
|| { git clone --quiet https://github.com/PyDevices/lvgl-circuitpython.git lvgl-cp \
&& git -C lvgl-cp checkout --quiet "$LVGL_CP_REF"; }
echo "commit=$(git -C lvgl-cp rev-parse HEAD)" >> "$GITHUB_OUTPUT"
REF: ${{ inputs.omnipython-lvgl-ref }}
run: scripts/pin_lvgl_ref.sh "$REF"

- name: Check the files and write firmware.json
env:
Expand All @@ -216,8 +203,7 @@ jobs:
run: |
python3 scripts/release_firmware.py assemble in firmware $PICO2 \
--tag "$TAG" \
--run-url "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" \
--lvgl-circuitpython-commit "${{ steps.lvgl.outputs.commit }}"
--run-url "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID"
ls -l firmware
cat firmware/firmware.json

Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ fix is a good first contribution.
|---|---|
| `build_mp.py` | The build command. |
| `UPSTREAM` | The MicroPython commit the patches apply to. |
| `modules.lock`, `deps.lock` | What gets fetched when it's missing, lvgl-bindings included. |
| `modules.lock`, `deps.lock` | What gets fetched when it's missing, omnipython-lvgl included. |
| `modules/` | The module manifest, `all/`, `tflite/` and `vision/` (esp-vision's), the modules linked or cloned, and the C modules that live only here: `audioif`, `cameraif`, `castif`, `displayif`, `h264enc`, `jpegio`, `mdns`, `pngio`, `ppa`, `tsmux`, `usbhost`. Each has its own README and tests. |
| `modules/.lvgl-bindings` | The lvgl-bindings lvgl-micropython compiles: the sibling checkout, linked, or `modules.lock`'s commit, fetched. |
| `modules/.omnipython-lvgl` | LVGL, its bindings and its ports, which `--modules lvgl` compiles: the sibling checkout, linked, or `modules.lock`'s commit, fetched. |
| `patches/` | The patch series and `apply_patches.py`. |
| `variants/`, `boards/` | Our variants and CircuitPython boards. |
| `scripts/` | `exercise_build.sh`, `release_firmware.py`, `stage_firmware_page.py`, `serve_workbench.sh`, `freeze_list.py`, `update_provenance.py`. |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ FLASH_SIZE_SDKCONFIG = boards/$(BOARD)/sdkconfig-flash.defaults
CIRCUITPY_STORAGE_EXTEND = 0
CIRCUITPY_DUALBANK = 0

# LVGL links its own AnimatedGIF decoder (lvgl-circuitpython's micropython.mk).
# LVGL links its own AnimatedGIF decoder (omnipython-lvgl's ports/circuitpython/micropython.mk).
CIRCUITPY_GIFIO = 0

# Specialized board.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,5 @@ FLASH_SIZE_SDKCONFIG = boards/$(BOARD)/sdkconfig-flash.defaults
CIRCUITPY_STORAGE_EXTEND = 0
CIRCUITPY_DUALBANK = 0

# LVGL links its own AnimatedGIF decoder (lvgl-circuitpython's micropython.mk).
# LVGL links its own AnimatedGIF decoder (omnipython-lvgl's ports/circuitpython/micropython.mk).
CIRCUITPY_GIFIO = 0
Original file line number Diff line number Diff line change
Expand Up @@ -32,5 +32,5 @@ FLASH_SIZE_SDKCONFIG = boards/$(BOARD)/sdkconfig-flash.defaults
CIRCUITPY_STORAGE_EXTEND = 0
CIRCUITPY_DUALBANK = 0

# LVGL links its own AnimatedGIF decoder (lvgl-circuitpython's micropython.mk).
# LVGL links its own AnimatedGIF decoder (omnipython-lvgl's ports/circuitpython/micropython.mk).
CIRCUITPY_GIFIO = 0
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ FLASH_SIZE_SDKCONFIG = boards/$(BOARD)/sdkconfig-flash.defaults
CIRCUITPY_STORAGE_EXTEND = 0
CIRCUITPY_DUALBANK = 0

# LVGL links its own AnimatedGIF decoder (lvgl-circuitpython's micropython.mk).
# LVGL links its own AnimatedGIF decoder (omnipython-lvgl's ports/circuitpython/micropython.mk).
CIRCUITPY_GIFIO = 0

CIRCUITPY_DOTCLOCKFRAMEBUFFER = 1
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ FLASH_SIZE_SDKCONFIG = boards/$(BOARD)/sdkconfig-flash.defaults
CIRCUITPY_STORAGE_EXTEND = 0
CIRCUITPY_DUALBANK = 0

# LVGL links its own AnimatedGIF decoder (lvgl-circuitpython's micropython.mk).
# LVGL links its own AnimatedGIF decoder (omnipython-lvgl's ports/circuitpython/micropython.mk).
CIRCUITPY_GIFIO = 0
Loading
Loading