Skip to content

Commit

Permalink
Merge pull request espressif#372 from espressif/feat/noglib_example
Browse files Browse the repository at this point in the history
feat(test_apps): Add noglib test_app
  • Loading branch information
tore-espressif authored Sep 9, 2024
2 parents 7e2be83 + e9a74d6 commit a61db3c
Show file tree
Hide file tree
Showing 20 changed files with 534 additions and 85 deletions.
68 changes: 47 additions & 21 deletions .build-test-rules.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,68 @@
# Examples: Always build all
examples:
disable:
- if: CONFIG_NAME in ["esp-box", "esp-box-lite"]
reason: Do not build examples for deprecated BSPs
- if: IDF_VERSION_MAJOR < 5 and CONFIG_NAME in ["esp32_c3_lcdkit", "esp32_s3_lcd_ev_board", "esp32_s3_usb_otg", "m5stack_core_s3", "m5stack_core_2", "m5dial"]
reason: Example depends on BSP, which is supported only for IDF >= 5.0
- if: IDF_VERSION_MAJOR < 5 and IDF_TARGET in ["esp32c2", "esp32p4", "esp32c5", "esp32c6"]
reason: Example depends on target, which is supported only for IDF >= 5.0
- if: IDF_VERSION_MAJOR < 5 and IDF_VERSION_MINOR < 3 and CONFIG_NAME == "esp32_p4_function_ev_board"
reason: Example depends on BSP, which is supported only for IDF >= 5.3

components/lcd/esp_lcd_gc9503:
# Noglib test_app: Build only in CI, where ENV_BUILD_NOGLIB is set
test_apps/noglib:
disable:
- if: IDF_VERSION_MAJOR < 5 or (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR == 0 and ESP_IDF_VERSION_PATCH < 5) or (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR == 1 and ESP_IDF_VERSION_PATCH == 1)
reason: Supported from version 5.0.5 and not supported in version 5.1.1
- if: ENV_BUILD_NOGLIB == 0

# Common components test_app: Build for changes in components which do not have their own test_app or example
test_apps/components:
depends_filepatterns:
- "components/bh1750/**"
- "components/ds18b20/**"
- "components/fbm320/**"
- "components/hts221/**"
- "components/icm42670/**"
- "components/io_expander/**"
- "components/lcd/ra8875/**"
- "components/lcd/sh1107/**"
- "components/lcd_touch/**"
- "components/mag3110/**"
- "components/mpu6050/**"

components/lcd/esp_lcd_gc9503/test_apps:
# esp_lvgl_port: Build only on related changes and components used in examples
components/esp_lvgl_port:
depends_filepatterns:
- "components/esp_lvgl_port/**"
- "components/lcd_touch/esp_lcd_touch_tt21100/**"
- "components/lcd_touch/esp_lcd_touch_gt1151/**"
- "components/lcd/sh1107/**"

# LCD components: Build only on related changes
components/lcd/esp_lcd_gc9a01:
depends_filepatterns:
- "components/lcd/esp_lcd_gc9a01/**"

components/lcd/esp_lcd_gc9503:
depends_filepatterns:
- "components/lcd/esp_lcd_gc9503/**"
disable:
- if: IDF_VERSION_MAJOR < 5 or (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR == 0 and ESP_IDF_VERSION_PATCH < 5) or (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR == 1 and ESP_IDF_VERSION_PATCH == 1)
reason: Supported from version 5.0.5 and not supported in version 5.1.1

components/lcd/esp_lcd_ssd1681:
disable:
- if: IDF_VERSION_MAJOR < 5
reason: Component is supported only for IDF >= 5.0

components/esp_lvgl_port/examples/rgb_lcd:
disable:
- if: IDF_VERSION_MAJOR < 5
reason: Example for RGB LCD is supported only for IDF >= 5.0
components/lcd/esp_lcd_ili9341:
depends_filepatterns:
- "components/lcd/esp_lcd_ili9341/**"

components/lcd/esp_lcd_ili9881c:
depends_filepatterns:
- "components/lcd/esp_lcd_ili9881c/**"
disable:
- if: (IDF_VERSION_MAJOR == 5 and IDF_VERSION_MINOR < 3) or IDF_VERSION_MAJOR < 5
reason: Component is supported only for IDF >= 5.3
- if: IDF_TARGET not in ["esp32p4"]
reason: Component is supported only for esp32p4 target

components/lcd/esp_lcd_st7796/test_apps:
disable:
- if: IDF_VERSION_MAJOR < 5
reason: Component is supported only for IDF >= 5.0
components/lcd/esp_lcd_ssd1681:
depends_filepatterns:
- "components/lcd/esp_lcd_ssd1681/**"

components/lcd/esp_lcd_st7796:
depends_filepatterns:
- "components/lcd/esp_lcd_st7796/**"
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
name: Build BSP examples
name: Build ESP-BSP apps

# This job builds all examples and test_applications in this repo
# Applications are selected for build based on changes files and dependecies defined in .build-test-rules.yml

on:
pull_request:
Expand All @@ -24,12 +27,6 @@ jobs:
- idf_ver: "latest"
parallel_count: 5
parallel_index: 5
- idf_ver: "release-v4.4"
parallel_count: 2
parallel_index: 1
- idf_ver: "release-v4.4"
parallel_count: 2
parallel_index: 2
- idf_ver: "release-v5.1"
parallel_count: 2
parallel_index: 1
Expand All @@ -48,20 +45,24 @@ jobs:
- idf_ver: "release-v5.3"
parallel_count: 2
parallel_index: 2
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
container: espressif/idf:${{ matrix.idf_ver }}
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Build ESP-BSP examples
- uses: actions/checkout@v4

- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45

- name: Build ESP-BSP applications
shell: bash
env:
extra_arguments: "${{ matrix.idf_ver == 'latest' && '--default-build-targets esp32 esp32s2 esp32s3 esp32c2 esp32c3 esp32c6 esp32h2 esp32p4' || '' }}"
IDF_EXTRA_ACTIONS_PATH: "${{ github.workspace }}/examples"
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
export IDF_EXTRA_ACTIONS_PATH=${GITHUB_WORKSPACE}/examples
. ${IDF_PATH}/export.sh
pip install idf-component-manager==1.* ruamel.yaml idf-build-apps --upgrade
echo idf-build-apps extra arguments: ${{ env.extra_arguments }}
idf-build-apps find ${{ env.extra_arguments }}
idf-build-apps build --parallel-count ${{ matrix.parallel_count }} --parallel-index ${{ matrix.parallel_index }} ${{ env.extra_arguments }}
pip install idf-component-manager==1.* ruamel.yaml idf-build-apps==2.4.3 --upgrade
echo "Files changed: ${ALL_CHANGED_FILES}"
idf-build-apps find --modified-files "${ALL_CHANGED_FILES}"
idf-build-apps build --parallel-count ${{ matrix.parallel_count }} --parallel-index ${{ matrix.parallel_index }} --modified-files "${ALL_CHANGED_FILES}"
38 changes: 0 additions & 38 deletions .github/workflows/build_test.yml

This file was deleted.

4 changes: 0 additions & 4 deletions .idf_build_apps.toml
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
target = "all"
paths = "."
recursive = true
exclude = [
"test_app",
"SquareLine",
"bsp"
]
manifest_file = ".build-test-rules.yml"
check_warnings = true
Expand Down
4 changes: 2 additions & 2 deletions Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ RECURSIVE = YES
EXCLUDE = docu \
examples \
SquareLine \
test_app
test_apps
EXCLUDE_PATTERNS = */build/* \
*/managed_components/* \
*/dist/*
Expand All @@ -21,4 +21,4 @@ PREDEFINED = \
ESP_LVGL_PORT_TOUCH_COMPONENT=1 \
ESP_LVGL_PORT_BUTTON_COMPONENT=1 \
ESP_LVGL_PORT_KNOB_COMPONENT=1 \
ESP_LVGL_PORT_USB_HOST_HID_COMPONENT=1
ESP_LVGL_PORT_USB_HOST_HID_COMPONENT=1
2 changes: 1 addition & 1 deletion check_copyright_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ examples_and_unit_tests:
- 'examples/'
- 'components/**/test/**'
- 'components/**/test_apps/**'
- 'test_app/'
- 'test_apps/'
- 'SquareLine/'
allowed_licenses:
- Apache-2.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)

set(EXTRA_COMPONENT_DIRS "../components" "../components/lcd" "../components/lcd_touch" "../components/io_expander")
set(EXTRA_COMPONENT_DIRS "../../components" "../../components/lcd" "../../components/lcd_touch" "../../components/io_expander")
set(EXCLUDE_COMPONENTS "es8311 es7210") # Deprecated components

include($ENV{IDF_PATH}/tools/cmake/version.cmake) # $ENV{IDF_VERSION} was added after v4.3...
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
7 changes: 7 additions & 0 deletions test_apps/noglib/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# The following five lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.16)

set(COMPONENTS main)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(noglib)
23 changes: 23 additions & 0 deletions test_apps/noglib/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# No Graphical Library BSP test_app

BSPs are by default shipped with LVGL graphical library. This test_app shows how you can use 'noglib' version of BSPs (without LVGL) and is used mainly for CI testing purposes.

More information about noglib BSPs can be found in root [README file](../../README.md).

## How to use the example

### Hardware Required

* Any of the supported boards

### Compile and flash

This example is used mainly for CI testing purposes. If you want to build it locally, follow these steps:

1. Create a noglib version of your BSP with `python ./.github/ci/bsp_noglib.py <name_of_your_bsp>`
2. Update [idf_component.yml](main/idf_component.yml) with your BSP
3. Compile and flash as usual `idf.py -p COMx flash monitor`

### Example outputs

Following picture will be displayed with wave effect: ![](image.jpg)
Binary file added test_apps/noglib/image.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions test_apps/noglib/main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
idf_component_register(SRCS "noglib_main.c" "pretty_effect.c"
INCLUDE_DIRS ".")
7 changes: 7 additions & 0 deletions test_apps/noglib/main/idf_component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## IDF Component Manager Manifest File
dependencies:
## Required IDF version
idf: ">=5.1"
esp_wrover_kit_noglib:
version: "*"
override_path: "../../../bsp/esp_wrover_kit_noglib"
Loading

0 comments on commit a61db3c

Please sign in to comment.