fix(wifi_remote): Fix CI builds to generate configs per slave selection

Rather than keeping sdkconfig.ci.*** for the smoke tests in git
This commit is contained in:
David Cermak
2024-09-18 17:15:43 +02:00
parent e9ac41e1d7
commit 8795d16466
4 changed files with 45 additions and 6 deletions

View File

@ -13,7 +13,7 @@ jobs:
name: Check API compatibility of WiFi Remote name: Check API compatibility of WiFi Remote
strategy: strategy:
matrix: matrix:
idf_ver: ["latest"] idf_ver: ["latest", "release-v5.3"]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
container: espressif/idf:${{ matrix.idf_ver }} container: espressif/idf:${{ matrix.idf_ver }}
steps: steps:
@ -33,7 +33,7 @@ jobs:
name: Build WiFi Remote Test name: Build WiFi Remote Test
strategy: strategy:
matrix: matrix:
idf_ver: ["latest"] idf_ver: ["latest", "release-v5.3"]
test: [ { app: smoke_test, path: "test/smoke_test" }] test: [ { app: smoke_test, path: "test/smoke_test" }]
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
container: espressif/idf:${{ matrix.idf_ver }} container: espressif/idf:${{ matrix.idf_ver }}
@ -49,6 +49,7 @@ jobs:
run: | run: |
. ${IDF_PATH}/export.sh . ${IDF_PATH}/export.sh
pip install idf-component-manager idf-build-apps --upgrade pip install idf-component-manager idf-build-apps --upgrade
python ./scripts/generate_slave_configs.py ./components/esp_wifi_remote/${{matrix.test.path}}
python ./ci/build_apps.py ./components/esp_wifi_remote/${{matrix.test.path}} -vv --preserve-all python ./ci/build_apps.py ./components/esp_wifi_remote/${{matrix.test.path}} -vv --preserve-all
build_wifi_remote_example: build_wifi_remote_example:

View File

@ -0,0 +1,32 @@
# SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Apache-2.0
import os
import re
import sys
if len(sys.argv) < 2:
print('Usage: python generate_slave_configs.py <output_directory>')
sys.exit(1)
output_directory = sys.argv[1]
# Input Kconfig file
kconfig_file = f"idf_v{os.getenv('ESP_IDF_VERSION')}/Kconfig.slave_select.in"
# Output file prefix
output_prefix = 'sdkconfig.ci.'
# Regex pattern to match all available options for SLAVE_IDF_TARGET
pattern = r'^ *config SLAVE_IDF_TARGET_(\w+)'
# Read the Kconfig and generate specific sdkconfig.ci.{slave} for each option
with open(kconfig_file, 'r') as file:
for line in file:
match = re.match(pattern, line)
if match:
slave = match.group(1)
output_file = os.path.join(output_directory, f'{output_prefix}{slave.lower()}')
with open(output_file, 'w') as out_file:
out_file.write(f'CONFIG_SLAVE_IDF_TARGET_{slave.upper()}=y\n')
print(f'Generated: {output_file}')

View File

@ -1,3 +1,5 @@
idf_component_register(SRCS "esp_hosted_mock.c" set(IDF_VER_DIR "idf_v$ENV{ESP_IDF_VERSION}")
INCLUDE_DIRS "include"
idf_component_register(SRCS "${IDF_VER_DIR}/esp_hosted_mock.c"
INCLUDE_DIRS "${IDF_VER_DIR}/include" "include"
REQUIRES esp_wifi esp_wifi_remote) REQUIRES esp_wifi esp_wifi_remote)

View File

@ -1,2 +1,6 @@
idf_component_register(SRCS "smoke_test.c" "all_wifi_calls.c" "all_wifi_remote_calls.c" set(IDF_VER_DIR "idf_v$ENV{ESP_IDF_VERSION}")
INCLUDE_DIRS ".")
idf_component_register(SRCS "smoke_test.c"
"${IDF_VER_DIR}/all_wifi_calls.c"
"${IDF_VER_DIR}/all_wifi_remote_calls.c"
INCLUDE_DIRS ".")