Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 96 additions & 0 deletions .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: Run LVGL benchmarks and publish their outputs

on:
push:
branches:
- master
schedule:
- cron: '0 20 * * SAT'
workflow_dispatch:
# TODO: Remove
pull_request:
types: [opened, reopened, synchronize, labeled]

permissions:
checks: write

jobs:
build_benchmarks:
env:
BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark"
runs-on: ubuntu-latest
container: espressif/idf:release-v5.5
steps:
- uses: actions/checkout@v6
- name: Build benchmark binaries
shell: bash
run: |
export IDF_PYTHON_CHECK_CONSTRAINTS=yes
${IDF_PATH}/install.sh --enable-ci
source ${IDF_PATH}/export.sh

idf-build-apps build \
--path ${{ env.BENCHMARK_PROJECT_DIR }} \
--target all \
--collect-app-info build_info.json
- uses: actions/upload-artifact@v7
if: github.repository_owner == 'espressif'
with:
name: app_binaries
path: |
${{ env.BENCHMARK_PROJECT_DIR }}/build_*/bootloader/bootloader.bin
${{ env.BENCHMARK_PROJECT_DIR }}/build_*/partition_table/partition-table.bin
${{ env.BENCHMARK_PROJECT_DIR }}/build_*/*.bin
${{ env.BENCHMARK_PROJECT_DIR }}/build_*/flasher_args.json
${{ env.BENCHMARK_PROJECT_DIR }}/build_*/config/sdkconfig.json
build_info*.json

run_benchmarks:
name: Run benchmarks
if: github.repository_owner == 'espressif'
needs: build_benchmarks
strategy:
matrix:
idf_ver:
- "release-v5.5"
env:
BENCHMARK_PROJECT_DIR: "examples/display_lvgl_benchmark"
TEST_RESULT_NAME: test_results_lvgl_benchmarks
runs-on: [self-hosted, Linux, bspwall]
container:
image: espressif/idf:${{ matrix.idf_ver }}
options: --privileged -v /dev/boards:/dev/boards/
steps:
- uses: actions/checkout@v6
- uses: actions/download-artifact@v8
with:
pattern: app_binaries
# Restores artifacts to their original paths
merge-multiple: true
- name: Run apps
run: |
export IDF_PYTHON_CHECK_CONSTRAINTS=yes
${IDF_PATH}/install.sh --enable-ci --enable-pytest
. ${IDF_PATH}/export.sh
pip install --prefer-binary pytest-custom_exit_code pytest-xdist

# Run benchmarks with custom config
export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy
mkdir -p /tmp/pytest-embedded-cache-dummy
pytest \
${{ env.BENCHMARK_PROJECT_DIR }} \
-c pytest.ini \
--suppress-no-test-exit-code \
--junit-xml=${{ env.TEST_RESULT_NAME }}.xml \
-p no:idf-ci
- name: Upload test results
uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ env.TEST_RESULT_NAME }}
path: |
${{ env.TEST_RESULT_NAME }}.xml
*.log
benchmark_*.md
benchmark_*.json
benchmark.json
30 changes: 7 additions & 23 deletions .github/workflows/build-run-applications.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,7 @@ on:
schedule:
- cron: '0 0 * * *' # every day at midnight
workflow_dispatch:
inputs:
WFType:
description: 'Workflow type'
required: true
default: 'Build + Tests'
type: choice
options:
- Build + Tests
- Build + Tests + Benchmark


# Cancel previous CI, if running and changed label or pushed PR (Prevent to wait for runners)
concurrency:
Expand Down Expand Up @@ -63,12 +55,12 @@ jobs:
runs-on: ubuntu-latest
container: espressif/idf:${{ matrix.idf_ver }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Get changed files
if: github.event_name == 'pull_request' # This action is working only in pull-request (it fails in push to master)
id: changed-files
uses: tj-actions/changed-files@v45
uses: tj-actions/changed-files@v47
with:
separator: ';' # idf-build-apps expects files seprated with semicolon

Expand Down Expand Up @@ -99,7 +91,7 @@ jobs:
echo "### ⚠️ Build failed for idf_ver=${{ matrix.idf_ver }}" >> $GITHUB_STEP_SUMMARY
echo "This failure was ignored (continue-on-error enabled)." >> $GITHUB_STEP_SUMMARY

- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
if: github.repository_owner == 'espressif' # && needs.prepare.outputs.build_only == '0'
with:
name: app_binaries_${{ matrix.idf_ver }}_${{ matrix.parallel_index }}
Expand Down Expand Up @@ -142,23 +134,15 @@ jobs:
matrix:
idf_ver:
- "release-v5.5"
runner:
- example: "test_example_display"
- example: "test_example_sdcard"
- example: "test_example_lvgl_demos"
- example: "test_example_generic_button_led"
- example: "test_example_lvgl_benchmark"
env:
TEST_RESULT_NAME: test_results_${{ matrix.runner.example }}_${{ matrix.idf_ver }}
BENCHMARK_RESULT_NAME: benchmark_${{ matrix.runner.example }}_${{ matrix.idf_ver }}
TEST_RESULT_FILE: test_results_${{ matrix.runner.example }}_${{ matrix.idf_ver }}.xml
PYTEST_BENCHMARK_IGNORE: ${{ (contains(github.event.pull_request.labels.*.name, 'Run benchmark') || contains(inputs.WFType, 'Build + Tests + Benchmark') || github.ref_name == 'master') && format(' ') || format('--ignore=examples/display_lvgl_benchmark') }}
runs-on: [self-hosted, Linux, bspwall]
container:
image: espressif/idf:${{ matrix.idf_ver }}
options: --privileged -v /dev/boards:/dev/boards/ # Privileged mode has access to serial ports
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: actions/download-artifact@v4
with:
pattern: app_binaries_${{ matrix.idf_ver }}_*
Expand All @@ -177,9 +161,9 @@ jobs:

export PYTEST_EMBEDDED_CACHE_DIR=/tmp/pytest-embedded-cache-dummy
mkdir -p /tmp/pytest-embedded-cache-dummy
pytest --suppress-no-test-exit-code --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} -k "${{ matrix.runner.example }} and not test_example_display_sensors" -n auto ${{ env.PYTEST_BENCHMARK_IGNORE }}
pytest --junit-xml=${{ env.TEST_RESULT_FILE }} -n auto --dist loadgroup
- name: Upload test results
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ env.TEST_RESULT_NAME }}
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
push:
branches:
- master

permissions:
pages: write
id-token: write
Expand All @@ -26,7 +26,7 @@ jobs:
container: espressif/idf:${{ matrix.idf_ver }}
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: 'recursive'

Expand All @@ -47,7 +47,7 @@ jobs:
config_file: examples/.idf_build_apps.toml

- name: Upload Artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: built_files
path: binaries/
Expand All @@ -56,7 +56,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0 # all git history

Expand All @@ -72,7 +72,7 @@ jobs:
python .github/ci/release_checker.py > site/release_checker.html

- name: Upload Artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: release_checker
path: site/
Expand All @@ -93,13 +93,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Download built files
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: built_files
path: binaries/

- name: Download built files
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: release_checker
path: site/
Expand Down
29 changes: 0 additions & 29 deletions .github/workflows/jira_sync.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ jobs:
steps:
- name: Install doxygen
run: sudo apt-get install -y doxygen
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: actions/setup-python@v5.2.0
- uses: pre-commit/action@v3.0.1
6 changes: 3 additions & 3 deletions .github/workflows/squareline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ jobs:
create-squareline-packages:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6
- name: Generate the packages
run: |
cd SquareLine
python3 gen.py -o out_dir
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: artifacts
path: SquareLine/out_dir/espressif/
Expand All @@ -31,7 +31,7 @@ jobs:
needs: [ create-squareline-packages ]
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: artifacts
path: espressif
Expand Down
52 changes: 12 additions & 40 deletions .github/workflows/upload_component.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
- m5stack_tab5
- esp_vocat
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: Prepare BSP examples
run: |
Expand All @@ -65,48 +65,20 @@ jobs:
upload_other_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Discover other components
id: discover_components
# Output each idf_component YAML file which specifies a version of itself
run: |
echo "components<<EOF" >> "$GITHUB_OUTPUT"
grep -rl --include="idf_component.y*ml" "^version:" components/ | xargs -I {} dirname {} >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- name: Upload Other components
uses: espressif/upload-components-ci-action@v2
with:
components: |
components/bsp_selector
components/bh1750
components/ds18b20
components/es8311
components/es7210
components/fbm320
components/hts221
components/mag3110
components/mpu6050
components/esp_lvgl_port
components/qma6100p
components/lcd_touch/esp_lcd_touch
components/lcd_touch/esp_lcd_touch_ft5x06
components/lcd_touch/esp_lcd_touch_gt911
components/lcd_touch/esp_lcd_touch_tt21100
components/lcd_touch/esp_lcd_touch_gt1151
components/lcd_touch/esp_lcd_touch_cst816s
components/lcd/esp_lcd_gc9a01
components/lcd/esp_lcd_ili9341
components/lcd/esp_lcd_ra8875
components/lcd_touch/esp_lcd_touch_stmpe610
components/lcd/esp_lcd_sh1107
components/lcd/esp_lcd_st7796
components/lcd/esp_lcd_gc9503
components/lcd/esp_lcd_ssd1681
components/lcd/esp_lcd_ili9881c
components/lcd/esp_lcd_lt8912b
components/lcd/esp_lcd_nt35510
components/io_expander/esp_io_expander
components/io_expander/esp_io_expander_tca9554
components/io_expander/esp_io_expander_tca95xx_16bit
components/io_expander/esp_io_expander_ht8574
components/io_expander/esp_io_expander_pi4ioe5v6408
components/io_expander/esp_io_expander_aw9523
components/sensors/icm42670
components/sensors/aht30
components/sensors/bmi270
components: ${{ steps.discover_components.outputs.components }}
namespace: "espressif"
api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }}
dry_run: ${{ github.ref_name != 'master' || github.repository_owner != 'espressif' }}


6 changes: 3 additions & 3 deletions .github/workflows/upload_component_noglib.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ on:
push:
branches:
- master
paths:
paths:
- 'bsp/**'
pull_request:
types: [opened, reopened, synchronize]
paths:
paths:
- 'bsp/**'

jobs:
upload_components:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6

- name: Upload noglib version of BSPs
# TODO: Extend this part to all BSPs
Expand Down
Loading
Loading