Skip to content

LVGL_MicroPython For ESP32 #26

LVGL_MicroPython For ESP32

LVGL_MicroPython For ESP32 #26

name: LVGL_MicroPython For ESP32
on:
workflow_dispatch:
env:
LVGL: lvgl_micropython
LVGL_REPO: https://github.com/lvgl-micropython/lvgl_micropython.git
TZ: Asia/Shanghai
jobs:
LVGL_MicroPython-ESP32:
name: Build LVGL_MicroPython
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
info:
- '{ "BOARD": "ESP32_GENERIC", "BOARD_VARIANT": "SPIRAM", "FLASH": "4", "DISPLAY": "st7735", "INDEV":"" }'
- '{ "BOARD": "ESP32_GENERIC_S3", "BOARD_VARIANT": "SPIRAM_OCT", "FLASH": "8", "DISPLAY": "hx8369", "INDEV":"gt911" }'
- '{ "BOARD": "ESP32_GENERIC_S3", "BOARD_VARIANT": "SPIRAM_OCT", "FLASH": "16", "DISPLAY": "gc9a01", "INDEV":"" }'
steps:
- name: Checkout
uses: actions/checkout@main
- name: Initialization environment
run: |
sudo apt-get update -y
sudo apt-get install -y build-essential libffi-dev git pkg-config
sudo apt-get install -y git wget flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 python-is-python3 pip
sudo timedatectl set-timezone "${{env.TZ}}"
- name: Clone LVGL
run: |
git clone --depth=1 ${{env.LVGL_REPO}} ${{env.LVGL}}
- name: Compile the firmware
id: compile
run: |
cd ${{env.LVGL}}
if ["${{fromJSON(matrix.info).INDEV}}" == ""]; then
if ["${{fromJSON(matrix.info).FLASH}}" == "4"]; then
echo "python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} --optimize-size DISPLAY=${{fromJSON(matrix.info).DISPLAY}}"
python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} DISPLAY=${{fromJSON(matrix.info).DISPLAY}}
else
echo "python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} DISPLAY=${{fromJSON(matrix.info).DISPLAY}}"
python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} DISPLAY=${{fromJSON(matrix.info).DISPLAY}}
fi
echo "FIREMWARE=LVGL_MicroPython-${{fromJSON(matrix.info).BOARD}}_${{fromJSON(matrix.info).BOARD_VARIANT}}_N${{fromJSON(matrix.info).FLASH}}_${{fromJSON(matrix.info).DISPLAY}}-$(date +"%Y%m%d%H%M").bin" >> $GITHUB_ENV
else
if ["${{fromJSON(matrix.info).FLASH}}" == "4"]; then
echo "python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} --optimize-size DISPLAY=${{fromJSON(matrix.info).DISPLAY}} INDEV=${{fromJSON(matrix.info).INDEV}}"
python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} DISPLAY=${{fromJSON(matrix.info).DISPLAY}} INDEV=${{fromJSON(matrix.info).INDEV}}
else
echo "python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} DISPLAY=${{fromJSON(matrix.info).DISPLAY}} INDEV=${{fromJSON(matrix.info).INDEV}}"
python3 make.py esp32 BOARD=${{fromJSON(matrix.info).BOARD}} BOARD_VARIANT=${{fromJSON(matrix.info).BOARD_VARIANT}} --flash-size=${{fromJSON(matrix.info).FLASH}} DISPLAY=${{fromJSON(matrix.info).DISPLAY}} INDEV=${{fromJSON(matrix.info).INDEV}}
fi
echo "FIREMWARE=LVGL_MicroPython-${{fromJSON(matrix.info).BOARD}}_${{fromJSON(matrix.info).BOARD_VARIANT}}_N${{fromJSON(matrix.info).FLASH}}_${{fromJSON(matrix.info).DISPLAY}}_${{fromJSON(matrix.info).INDEV}}-$(date +"%Y%m%d%H%M").bin" >> $GITHUB_ENV
fi
echo "OUTPUT=${{env.LVGL}}/build" >> $GITHUB_ENV
echo "FIREMWARE_ORIGIN=lvgl_micropy_${{fromJSON(matrix.info).BOARD}}-${{fromJSON(matrix.info).BOARD_VARIANT}}-${{fromJSON(matrix.info).FLASH}}.bin" >> $GITHUB_ENV
echo "status=success" >> $GITHUB_OUTPUT
echo "COMPILE_DATE=$(date +"%Y%m%d")" >> $GITHUB_ENV
- name: Organize compiled firmware
if: steps.compile.outputs.status == 'success' && !cancelled()
run: |
mv ${{env.OUTPUT}}/${{env.FIREMWARE_ORIGIN}} ${{env.OUTPUT}}/${{env.FIREMWARE}}
- name: Upload firmware to release
if: steps.compile.outputs.status == 'success' && !cancelled()
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{secrets.GITHUB_TOKEN}}
file: ${{env.OUTPUT}}/${{env.FIREMWARE}}
asset_name: ${{env.FIREMWARE}}
tag: LVGL_MicroPython-${{env.COMPILE_DATE}}
body: |
### LVGL & MicroPython Firmware For ESP32
[LVGL_MicroPython](https://github.com/lvgl-micropython/lvgl_micropython)
overwrite: true
Delete_Workflow:
needs: [ LVGL_MicroPython-ESP32 ]
runs-on: ubuntu-22.04
steps:
- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@main
with:
retain_days: 0
keep_minimum_runs: 4