Skip to content

Commit

Permalink
feat(ci): Use conditional build of apps
Browse files Browse the repository at this point in the history
  • Loading branch information
tore-espressif authored Sep 6, 2024
1 parent 514c4f4 commit e9a74d6
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 81 deletions.
66 changes: 44 additions & 22 deletions .build-test-rules.yml
Original file line number Diff line number Diff line change
@@ -1,46 +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

# Noglib test_app: Build only in CI, where ENV_BUILD_NOGLIB is set
test_apps/noglib:
disable:
- if: ENV_BUILD_NOGLIB == 0

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
# 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 }} -p examples
idf-build-apps build --parallel-count ${{ matrix.parallel_count }} --parallel-index ${{ matrix.parallel_index }} ${{ env.extra_arguments }} -p examples
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: 3 additions & 1 deletion .idf_build_apps.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
target = "all"
recursive = true
exclude = [
"SquareLine",
]
manifest_file = ".build-test-rules.yml"
check_warnings = true
ignore_warning_file = ".ignore_build_warnings.txt"
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

0 comments on commit e9a74d6

Please sign in to comment.