name: Build LVGL MicroPython on Linux for arm64 on: push: branches: - main pull_request: branches: - main workflow_dispatch: # allow manual workflow starts jobs: build: runs-on: ubuntu-24.04-arm 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 "release = " internal_filesystem/lib/mpos/build_info.py | cut -d "=" -f 2 | cut -d "#" -f 1 | 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 cp lvgl_micropython/build/lvgl_micropy_unix lvgl_micropython/build/MicroPythonOS_arm64_linux_${{ steps.version.outputs.OS_VERSION }}.elf - name: Upload built binary as artifact uses: actions/upload-artifact@v4 with: name: MicroPythonOS_arm64_linux_${{ steps.version.outputs.OS_VERSION }}.elf path: lvgl_micropython/build/MicroPythonOS_arm64_linux_${{ steps.version.outputs.OS_VERSION }}.elf retention-days: 7 - name: Run syntax tests on unix run: | ./tests/syntax.sh continue-on-error: true - name: Run unit tests on unix run: | ./tests/unittest.sh continue-on-error: true