Skip to content

Merge pull request #13 from Mark19000/main #176

Merge pull request #13 from Mark19000/main

Merge pull request #13 from Mark19000/main #176

Workflow file for this run

name: Build LVGL MicroPython on Linux
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch: # allow manual workflow starts
jobs:
build:
runs-on: ubuntu-latest # Ubuntu is Debian-based and commonly used in GitHub Actions
steps:
- name: Checkout repository with submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install lvgl_micropython dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
libffi-dev \
pkg-config \
cmake \
ninja-build \
gnome-desktop-testing \
libasound2-dev \
libpulse-dev \
libaudio-dev \
libjack-dev \
libsndio-dev \
libx11-dev \
libxext-dev \
libxrandr-dev \
libxcursor-dev \
libxfixes-dev \
libxi-dev \
libxss-dev \
libxkbcommon-dev \
libdrm-dev \
libgbm-dev \
libgl1-mesa-dev \
libgles2-mesa-dev \
libegl1-mesa-dev \
libdbus-1-dev \
libibus-1.0-dev \
libudev-dev \
fcitx-libs-dev \
libpipewire-0.3-dev \
libwayland-dev \
libdecor-0-dev
- name: Install additional MicroPythonOS dependencies
run: |
sudo apt-get update
sudo apt-get install -y libv4l-dev
- name: Extract OS version
id: version
run: |
OS_VERSION=$(grep CURRENT_OS_VERSION internal_filesystem/lib/mpos/info.py | cut -d "=" -f 2 | tr -d " " | tr -d '"')
echo "OS_VERSION=$OS_VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $OS_VERSION"
- name: Build LVGL MicroPython for unix
run: |
./scripts/build_mpos.sh unix
- name: Run syntax tests on unix
run: |
./tests/syntax.sh
continue-on-error: true
- name: Run unit tests on unix
run: |
./tests/unittest.sh
mv lvgl_micropython/build/lvgl_micropy_unix lvgl_micropython/build/MicroPythonOS_amd64_linux_${{ steps.version.outputs.OS_VERSION }}.elf
continue-on-error: true
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_amd64_linux_${{ steps.version.outputs.OS_VERSION }}.elf
path: lvgl_micropython/build/MicroPythonOS_amd64_linux_${{ steps.version.outputs.OS_VERSION }}.elf
retention-days: 7
- name: Build LVGL MicroPython esp32
run: |
./scripts/build_mpos.sh esp32
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin lvgl_micropython/build/MicroPythonOS_esp32_${{ steps.version.outputs.OS_VERSION }}.bin
mv lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/micropython.bin lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/MicroPythonOS_esp32_${{ steps.version.outputs.OS_VERSION }}.ota
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_esp32_${{ steps.version.outputs.OS_VERSION }}.bin
path: lvgl_micropython/build/MicroPythonOS_esp32_${{ steps.version.outputs.OS_VERSION }}.bin
retention-days: 7
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_esp32_${{ steps.version.outputs.OS_VERSION }}.ota
path: lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/MicroPythonOS_esp32_${{ steps.version.outputs.OS_VERSION }}.ota
retention-days: 7