First CI action for performance check of LVGL code base with SO3 (#4122)

Co-authored-by: Anthony I. Jaccard <anthony.jaccard@heig-vd.ch>
Co-authored-by: AnthoJack <to.jaccard@hotmail.ch>
This commit is contained in:
Daniel Rossier
2024-06-17 22:56:51 +02:00
committed by GitHub
parent c4c66386f4
commit d9496c7979
12 changed files with 432 additions and 12 deletions

View File

@@ -1,12 +0,0 @@
# Comment to a new issue.
pullRequestOpened: |
Thank you for raising your pull request.
To ensure that all licensing criteria is met all repositories of the LVGL project apply a process called DCO (Developer's Certificate of Origin).
The text of DCO can be read here: https://developercertificate.org/
For a more detailed description see the [Documentation](https://docs.lvgl.io/latest/en/html/contributing/index.html#developer-certification-of-origin-dco) site.
By contributing to any repositories of the LVGL project you state that your contribution corresponds with the DCO.
No further action is required if your contribution fulfills the DCO. If you are not sure about it feel free to ask us in a comment.

54
.github/workflows/check_perf.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: SO3-LVGL Performance check
on: [push, pull_request, workflow_dispatch]
jobs:
run_perf_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: 'lvgl'
- name: SO3-LVGL building the Docker image
run: |
wget https://raw.githubusercontent.com/smartobjectoriented/so3/40-expand-and-document-lvgl-perf-tests/Dockerfile.lvgl
docker build . -f Dockerfile.lvgl -t so3/virt64 --platform linux/amd64 --build-arg SO3_BRANCH=40-expand-and-document-lvgl-perf-tests
- name: SO3-LVL Running containerized performance check app
run: docker run --privileged -v $PWD:/host -v /dev:/dev so3/virt64
- name: Store performance data as artifact
uses: actions/upload-artifact@v4
with:
name: performance_data
path: perf_check*.txt
- name: Find previous successful run
id: prev_success_run
run: |
wget ${{ github.api_url }}/repos/${{ github.repository }}/actions/workflows/52959381/runs
echo "ID=$(python3 lvgl/scripts/last_success_run_id.py runs)" >> "$GITHUB_OUTPUT"
- name: Retrieve previous successful run performance data
if: ${{ steps.prev_success_run.outputs.ID != 0 }}
uses: actions/download-artifact@v4
with:
name: performance_data
path: prev_performance_data
run-id: ${{ steps.prev_success_run.outputs.ID }}
continue-on-error: true
- name: Performance report generation
id: perf_report
run: |
python3 lvgl/scripts/perf_report.py perf_check*.txt lvgl/tests/perf/func_thresholds.txt prev_performance_data/perf_check*.txt | tee perf_report.txt
python_return=${PIPESTATUS[0]}
echo "Python script returned $python_return"
exit $python_return
- name: Store performance report as artifact
if: success() || failure()
uses: actions/upload-artifact@v4
with:
name: performance_report
path: perf_report.txt