feat(cmake): Make LVGL version available for all CMake environments #12
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: MicroPython CI | |
on: | |
push: | |
pull_request: | |
jobs: | |
build: | |
if: ${{ github.event_name != 'pull_request' || github.repository != github.event.pull_request.head.repo.full_name }} | |
name: Build ${{ matrix.port }} port | |
runs-on: ubuntu-22.04 | |
continue-on-error: true | |
strategy: | |
matrix: | |
port: ['unix', 'esp32', 'stm32', 'rp2'] | |
steps: | |
- uses: ammaraskar/gcc-problem-matcher@master | |
- name: Install Dependencies | |
run: | | |
sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu `lsb_release -sc` main universe restricted multiverse" | |
sudo apt-get update -y -qq | |
sudo apt-get install libsdl2-dev parallel libfreetype-dev librlottie-dev libavformat-dev libavcodec-dev libswscale-dev libavutil-dev doxygen | |
python3 -m pip install pycparser | |
- name: Clone lv_micropython | |
run: | | |
git clone https://github.com/lvgl/lv_micropython.git . | |
git checkout master | |
- name: Initialize lv_bindings submodule | |
run: git submodule update --init --recursive lib/lv_bindings | |
- name: Update ${{ matrix.port }} port submodules | |
if: matrix.port != 'esp32' && matrix.port != 'rp2' | |
run: make -C ports/${{ matrix.port }} DEBUG=1 USER_C_MODULES=../../lib/lv_bindings/bindings.cmake submodules | |
- name: Checkout LVGL submodule | |
working-directory: ./lib/lv_bindings/lvgl | |
run: | | |
git fetch --force ${{ github.event.repository.html_url }} "+refs/heads/*:refs/remotes/origin/*" | |
git fetch --force ${{ github.event.repository.html_url }} "+refs/pull/*:refs/remotes/origin/pr/*" | |
git checkout ${{ github.sha }} || git checkout ${{ github.event.pull_request.head.sha }} | |
git submodule update --init --recursive | |
- name: Build mpy-cross | |
run: make -j $(nproc) -C mpy-cross | |
# ESP32 port | |
- name: Setup ESP-IDF | |
if: matrix.port == 'esp32' | |
run: | | |
source tools/ci.sh && ci_esp32_idf44_setup | |
- name: Build ESP32 port | |
if: matrix.port == 'esp32' | |
run: | | |
source tools/ci.sh && ci_esp32_build | |
# STM32 & RPi Pico port | |
- name: arm-none-eabi-gcc | |
if: matrix.port == 'stm32' || matrix.port == 'rp2' | |
uses: carlosperate/[email protected] | |
with: | |
release: '9-2019-q4' # The arm-none-eabi-gcc release to use. | |
- name: Build STM32 port | |
if: matrix.port == 'stm32' | |
run: make -j $(nproc) -C ports/stm32 BOARD=STM32F7DISC | |
- name: Build Raspberry Pi PICO port | |
if: matrix.port == 'rp2' | |
run: | | |
make -C ports/rp2 BOARD=PICO submodules | |
make -j $(nproc) -C ports/rp2 BOARD=PICO USER_C_MODULES=../../lib/lv_bindings/bindings.cmake | |
# Unix port | |
- name: Build Unix port | |
if: matrix.port == 'unix' | |
run: make -j $(nproc) -C ports/unix DEBUG=1 LV_CFLAGS="-DMICROPY_LV_USE_LOG=0" | |
- name: Install requirements for the test | |
run: | | |
python3 -m pip install pillow | |
mkdir lib/lv_bindings/lvgl/tests/micropy_test/artifacts | |
- name: Run tests | |
if: success() && matrix.port == 'unix' | |
run: | | |
export XDG_RUNTIME_DIR=/tmp | |
python3 lib/lv_bindings/lvgl/tests/micropy_test/__init__.py --artifact-path=lib/lv_bindings/lvgl/tests/micropy_test/artifacts --mpy-path=ports/unix/build-standard/micropython | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-artifacts | |
path: lib/lv_bindings/lvgl/tests/micropy_test/artifacts |