Skip to content

DNM: Update to LVGL 9.4.0 #2

DNM: Update to LVGL 9.4.0

DNM: Update to LVGL 9.4.0 #2

name: Emulated Performance Test
on:
push:
branches: 'master'
pull_request:
branches: 'master'
concurrency:
group: ${{ github.ref }}-${{ github.workflow }}
cancel-in-progress: true
jobs:
check_scripts:
runs-on: ubuntu-24.04
name: ARM Emulated Benchmark - Script Check
strategy:
fail-fast: false
matrix:
test_script:
- scripts/perf/tests/filter_docker_logs/test.sh
# These scripts aren't executed in this workflow directly. Instead, they're run
# by the `Emulated Performance Test Results Handler` workflow.
# That workflow runs in the context of the `master` branch, so this workflow ensures
# the scripts are tested in the PR context before merging. Helping to prevent CI failures in `master`
- scripts/perf/tests/benchmark_results_comment/test.sh
- scripts/perf/tests/serialize_results/test.sh
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Check Script
run: |
pip3 install msgpack==1.1.0
./${{ matrix.test_script }}
run_benchmark:
runs-on: ubuntu-24.04
name: ARM Emulated Benchmark ${{ matrix.image_type }} - ${{matrix.config }}
needs: check_scripts
strategy:
fail-fast: false
matrix:
include:
- image_type: 32b
image_version : |
main@sha256:61e287d63b19a503cc4505c13bd93f5e05e19513a947feb048d75662c398c862
config : lv_conf_perf32b
- image_type: 64b
image_version: |
main@sha256:e8663d9c138e98b78d12cc8ad056b7d4b0cc4ad233c6f54202e40ce7606c2670
config : lv_conf_perf64b
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Generate lv_conf.h
run: |
python scripts/generate_lv_conf.py \
--template lv_conf_template.h \
--config configs/ci/perf/lv_conf_perf.h \
--defaults configs/ci/perf/${{matrix.config}}.defaults
- name: Run Benchmark Demo
run: |
# Mounts the current lvgl source code into the container and runs the demo benchmark
# To add additional build dependencies, modify the `lvperf_dependencies.sh` script
docker run -t --privileged \
--name so3-lvperf \
-v /dev:/dev \
-v $(pwd)/configs/ci/perf/lv_conf_perf.h:/so3/usr/lib/lv_conf.h \
-v $(pwd):/so3/usr/lib/lvgl \
-v $(pwd)/scripts/perf/lvperf_dependencies.sh:/so3/install_dependencies.sh \
ghcr.io/smartobjectoriented/so3-lvperf${{matrix.image_type}}:${{matrix.image_version}}
- name: Collect Logs
run: |
sudo cat $(docker inspect --format='{{.LogPath}}' so3-lvperf) | python scripts/perf/filter_docker_benchmark_logs.py results-${{matrix.image_type}}-${{matrix.config}}.json
- name: Upload Results
uses: actions/upload-artifact@v4
with:
name: results-${{matrix.image_type}}-${{matrix.config}}
path: results-${{matrix.image_type}}-${{matrix.config}}.json
if-no-files-found: error
save_pr_number:
runs-on: ubuntu-24.04
if: ${{ github.event_name == 'pull_request' }}
name: ARM Emulated Benchmark - Save PR Number
needs: run_benchmark
steps:
- name: Save PR number
run: |
echo ${{ github.event.number }} > pr_number
- name: Upload PR number as artifact
uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr_number