name: Build Micropython with LVGL submodule

on:
  push:
    branches: [ master, dev ]
  pull_request:
    branches: [ master, dev ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Install SDL
      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
    - name: Clone lv_micropython
      run: |
        git clone https://github.com/lvgl/lv_micropython.git .
        git checkout dev-8.0
    - name: Update submodules
      run: git submodule update --init --recursive
    - name: Checkout LVGL submodule
      working-directory: ./lib/lv_bindings/lvgl
      run: |
        git fetch --force ${{ github.event.repository.git_url }} "+refs/heads/*:refs/remotes/origin/*"
        git fetch --force ${{ github.event.repository.git_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
    - name: Build the unix port
      run: make -j $(nproc) -C ports/unix
    - name: Run advanced_demo
      run: >
        echo "import gc,utime;
        utime.sleep(5);
        gc.collect();
        utime.sleep(5)" |
        ports/unix/micropython -i lib/lv_bindings/examples/advanced_demo.py
