Files
MicroPythonOS/.github/workflows/linux.yml
T
2025-11-07 15:55:19 +01:00

157 lines
6.7 KiB
YAML

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 dev
run: |
./scripts/build_mpos.sh unix dev
- name: Run syntax tests on unix dev
run: |
./tests/syntax.sh
continue-on-error: true
- name: Run unit tests on unix dev
run: |
./tests/unittest.sh
mv lvgl_micropython/build/lvgl_micropy_unix lvgl_micropython/build/MicroPythonOS_amd64_linux_dev_${{ 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_dev_${{ steps.version.outputs.OS_VERSION }}.elf
path: lvgl_micropython/build/MicroPythonOS_amd64_linux_dev_${{ steps.version.outputs.OS_VERSION }}.elf
retention-days: 7
- name: Build LVGL MicroPython esp32 prod fri3d-2024
run: |
./scripts/build_mpos.sh esp32 prod fri3d-2024
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin lvgl_micropython/build/MicroPythonOS_fri3d-2024_prod_${{ 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_fri3d-2024_prod_${{ steps.version.outputs.OS_VERSION }}.ota
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_fri3d-2024_prod_${{ steps.version.outputs.OS_VERSION }}.bin
path: lvgl_micropython/build/MicroPythonOS_fri3d-2024_prod_${{ steps.version.outputs.OS_VERSION }}.bin
retention-days: 7
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_fri3d-2024_prod_${{ steps.version.outputs.OS_VERSION }}.ota
path: lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/MicroPythonOS_fri3d-2024_prod_${{ steps.version.outputs.OS_VERSION }}.ota
retention-days: 7
- name: Build LVGL MicroPython esp32 dev fri3d-2024
run: |
./scripts/build_mpos.sh esp32 dev fri3d-2024
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin lvgl_micropython/build/MicroPythonOS_fri3d-2024_dev_${{ steps.version.outputs.OS_VERSION }}.bin
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_fri3d-2024_dev_${{ steps.version.outputs.OS_VERSION }}.bin
path: lvgl_micropython/build/MicroPythonOS_fri3d-2024_dev_${{ steps.version.outputs.OS_VERSION }}.bin
retention-days: 7
- name: Build LVGL MicroPython esp32 prod waveshare-esp32-s3-touch-lcd-2
run: |
./scripts/build_mpos.sh esp32 prod waveshare-esp32-s3-touch-lcd-2
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin lvgl_micropython/build/MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_prod_${{ 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_waveshare-esp32-s3-touch-lcd-2_prod_${{ steps.version.outputs.OS_VERSION }}.ota
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_prod_${{ steps.version.outputs.OS_VERSION }}.bin
path: lvgl_micropython/build/MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_prod_${{ steps.version.outputs.OS_VERSION }}.bin
retention-days: 7
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_prod_${{ steps.version.outputs.OS_VERSION }}.ota
path: lvgl_micropython/lib/micropython/ports/esp32/build-ESP32_GENERIC_S3-SPIRAM_OCT/MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_prod_${{ steps.version.outputs.OS_VERSION }}.ota
retention-days: 7
- name: Build LVGL MicroPython esp32 dev waveshare-esp32-s3-touch-lcd-2
run: |
./scripts/build_mpos.sh esp32 dev waveshare-esp32-s3-touch-lcd-2
mv lvgl_micropython/build/lvgl_micropy_ESP32_GENERIC_S3-SPIRAM_OCT-16.bin lvgl_micropython/build/MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_dev_${{ steps.version.outputs.OS_VERSION }}.bin
- name: Upload built binary as artifact
uses: actions/upload-artifact@v4
with:
name: MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_dev_${{ steps.version.outputs.OS_VERSION }}.bin
path: lvgl_micropython/build/MicroPythonOS_waveshare-esp32-s3-touch-lcd-2_dev_${{ steps.version.outputs.OS_VERSION }}.bin
retention-days: 7