mirror of
https://github.com/espressif/esp-protocols.git
synced 2025-07-21 06:22:21 +02:00
fix(esp_modem): run CI build job for all targets
Also * removed IDFv4.1 from tests * added common build_apps.py utility for finding/building apps
This commit is contained in:
54
.github/workflows/target-test.yml
vendored
54
.github/workflows/target-test.yml
vendored
@ -6,56 +6,38 @@ jobs:
|
|||||||
build_esp_modem:
|
build_esp_modem:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
idf_ver: ["latest", "release-v4.1", "release-v4.2", "release-v4.3", "release-v4.4", "release-v5.0"]
|
idf_ver: ["latest", "release-v4.2", "release-v4.3", "release-v4.4", "release-v5.0"]
|
||||||
example: ["pppos_client", "modem_console", "ap_to_pppos", "simple_cmux_client"]
|
example: ["pppos_client", "modem_console", "ap_to_pppos", "simple_cmux_client"]
|
||||||
idf_target: ["esp32"]
|
|
||||||
exclude:
|
exclude:
|
||||||
- idf_ver: "release-v4.1"
|
|
||||||
example: modem_console
|
|
||||||
- idf_ver: "release-v4.1"
|
|
||||||
example: ap_to_pppos
|
|
||||||
- idf_ver: "release-v4.1"
|
|
||||||
example: simple_cmux_client
|
|
||||||
- idf_ver: "release-v4.2"
|
- idf_ver: "release-v4.2"
|
||||||
example: simple_cmux_client
|
example: simple_cmux_client
|
||||||
|
include:
|
||||||
runs-on: ubuntu-20.04
|
- idf_ver: "release-v4.2"
|
||||||
container: espressif/idf:${{ matrix.idf_ver }}
|
skip_config: usb
|
||||||
steps:
|
- idf_ver: "release-v4.3"
|
||||||
- name: Checkout esp-protocols
|
skip_config: usb
|
||||||
uses: actions/checkout@master
|
- idf_ver: "release-v5.0"
|
||||||
with:
|
example: "simple_cmux_client"
|
||||||
path: esp-protocols
|
warning: "Warning: The smallest app partition is nearly full"
|
||||||
- name: Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }} for ${{ matrix.idf_target }}
|
|
||||||
env:
|
|
||||||
IDF_TARGET: ${{ matrix.idf_target }}
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
. ${IDF_PATH}/export.sh
|
|
||||||
cd $GITHUB_WORKSPACE/esp-protocols/components/esp_modem/examples/${{ matrix.example }}
|
|
||||||
idf.py build
|
|
||||||
|
|
||||||
build_esp_modem_usb:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
idf_ver: ["latest", "release-v4.4", "release-v5.0"]
|
|
||||||
example: ["modem_console", "pppos_client"]
|
|
||||||
idf_target: ["esp32s2", "esp32s3"]
|
|
||||||
|
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
container: espressif/idf:${{ matrix.idf_ver }}
|
container: espressif/idf:${{ matrix.idf_ver }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout esp-protocols
|
- name: Checkout esp-protocols
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
- name: Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }} for ${{ matrix.idf_target }}
|
with:
|
||||||
working-directory: components/esp_modem/examples/${{ matrix.example }}
|
path: protocols
|
||||||
|
- if: ${{ matrix.skip_config }}
|
||||||
|
run: rm -f $GITHUB_WORKSPACE/protocols/components/esp_modem/examples/${{ matrix.example }}/sdkconfig.ci.${{ matrix.skip_config }}*
|
||||||
|
- name: Build ${{ matrix.example }} with IDF-${{ matrix.idf_ver }}
|
||||||
env:
|
env:
|
||||||
IDF_TARGET: ${{ matrix.idf_target }}
|
EXPECTED_WARNING: ${{ matrix.warning }}
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
. ${IDF_PATH}/export.sh
|
. ${IDF_PATH}/export.sh
|
||||||
cat sdkconfig.ci.usb >> sdkconfig.defaults
|
python -m pip install idf-build-apps
|
||||||
idf.py build
|
cd $GITHUB_WORKSPACE/protocols
|
||||||
|
python ./ci/build_apps.py components/esp_modem/examples/${{ matrix.example }}
|
||||||
|
|
||||||
build_mdns:
|
build_mdns:
|
||||||
strategy:
|
strategy:
|
||||||
|
60
ci/build_apps.py
Normal file
60
ci/build_apps.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
"""
|
||||||
|
This file is used in CI for esp-protocols build tests
|
||||||
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from idf_build_apps import build_apps, find_apps, setup_logging
|
||||||
|
from idf_build_apps.constants import SUPPORTED_TARGETS
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description='Build all projects',
|
||||||
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
|
||||||
|
)
|
||||||
|
parser.add_argument('paths', nargs='+', help='Paths to the apps to build.')
|
||||||
|
parser.add_argument(
|
||||||
|
'-t',
|
||||||
|
'--target',
|
||||||
|
default='all',
|
||||||
|
help='Build apps for given target',
|
||||||
|
)
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
IDF_PATH = os.environ['IDF_PATH']
|
||||||
|
|
||||||
|
print(args.paths)
|
||||||
|
setup_logging(2)
|
||||||
|
apps = find_apps(
|
||||||
|
args.paths,
|
||||||
|
recursive=True,
|
||||||
|
target=args.target,
|
||||||
|
build_dir='build_@t_@w',
|
||||||
|
config_rules_str=[
|
||||||
|
'sdkconfig.ci=default', 'sdkconfig.ci.*=', '=default'
|
||||||
|
],
|
||||||
|
build_log_path='build_log.txt',
|
||||||
|
size_json_path='size.json',
|
||||||
|
check_warnings=True,
|
||||||
|
preserve=True,
|
||||||
|
manifest_files=[
|
||||||
|
str(p) for p in Path('.').glob('**/.build-test-rules.yml')
|
||||||
|
],
|
||||||
|
default_build_targets=SUPPORTED_TARGETS,
|
||||||
|
manifest_rootpath='.',
|
||||||
|
)
|
||||||
|
|
||||||
|
for app in apps:
|
||||||
|
print(app)
|
||||||
|
|
||||||
|
sys.exit(
|
||||||
|
build_apps(apps,
|
||||||
|
dry_run=False,
|
||||||
|
keep_going=False,
|
||||||
|
ignore_warning_strs=os.environ['EXPECTED_WARNING']
|
||||||
|
if 'EXPECTED_WARNING' in os.environ else None))
|
7
components/esp_modem/examples/.build-test-rules.yml
Normal file
7
components/esp_modem/examples/.build-test-rules.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
components/esp_modem/examples/ap_to_pppos:
|
||||||
|
disable:
|
||||||
|
- if: IDF_TARGET in ["esp32h2"]
|
||||||
|
|
||||||
|
components/esp_modem/examples/modem_console:
|
||||||
|
disable:
|
||||||
|
- if: IDF_TARGET in ["esp32h2"]
|
@ -7,4 +7,6 @@ endif()
|
|||||||
idf_component_register(SRCS "ap_to_pppos.c"
|
idf_component_register(SRCS "ap_to_pppos.c"
|
||||||
${NETWORK_DCE}
|
${NETWORK_DCE}
|
||||||
INCLUDE_DIRS ".")
|
INCLUDE_DIRS ".")
|
||||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
|
||||||
|
# Ignore strict prototypes, as the network_dce.h can used in both C and C++ compilation
|
||||||
|
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-strict-prototypes")
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
* SPDX-License-Identifier: Unlicense OR CC0-1.0
|
||||||
*/
|
*/
|
||||||
@ -38,7 +38,7 @@ static const int DISCONNECT_BIT = BIT1;
|
|||||||
static void on_ip_event(void *arg, esp_event_base_t event_base,
|
static void on_ip_event(void *arg, esp_event_base_t event_base,
|
||||||
int32_t event_id, void *event_data)
|
int32_t event_id, void *event_data)
|
||||||
{
|
{
|
||||||
ESP_LOGD(TAG, "IP event! %d", event_id);
|
ESP_LOGD(TAG, "IP event! %" PRId32, event_id);
|
||||||
if (event_id == IP_EVENT_PPP_GOT_IP) {
|
if (event_id == IP_EVENT_PPP_GOT_IP) {
|
||||||
esp_netif_dns_info_t dns_info;
|
esp_netif_dns_info_t dns_info;
|
||||||
ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data;
|
ip_event_got_ip_t *event = (ip_event_got_ip_t *)event_data;
|
||||||
|
@ -1 +1,2 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32s2"
|
||||||
CONFIG_EXAMPLE_SERIAL_CONFIG_USB=y
|
CONFIG_EXAMPLE_SERIAL_CONFIG_USB=y
|
@ -1 +1,2 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32s3"
|
||||||
CONFIG_EXAMPLE_SERIAL_CONFIG_USB=y
|
CONFIG_EXAMPLE_SERIAL_CONFIG_USB=y
|
@ -1,3 +1,4 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32c3"
|
||||||
# Override some defaults to enable PPP
|
# Override some defaults to enable PPP
|
||||||
CONFIG_LWIP_PPP_SUPPORT=y
|
CONFIG_LWIP_PPP_SUPPORT=y
|
||||||
CONFIG_LWIP_PPP_NOTIFY_PHASE_SUPPORT=y
|
CONFIG_LWIP_PPP_NOTIFY_PHASE_SUPPORT=y
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32s2"
|
||||||
|
CONFIG_EXAMPLE_SERIAL_CONFIG_USB=y
|
@ -0,0 +1,2 @@
|
|||||||
|
CONFIG_IDF_TARGET="esp32s3"
|
||||||
|
CONFIG_EXAMPLE_SERIAL_CONFIG_USB=y
|
Reference in New Issue
Block a user