Procházet zdrojové kódy

ci: enable build pytest ut and examples on esp32c2

morris před 3 roky
rodič
revize
47e4fe83ba

+ 14 - 0
.gitlab/ci/build.yml

@@ -65,6 +65,13 @@ build_pytest_examples_esp32c3:
   script:
     - run_cmd python tools/ci/build_pytest_apps.py examples --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv
 
+build_pytest_examples_esp32c2:
+  extends:
+    - .build_pytest_template
+    - .rules:build:example_test-esp32c2
+  script:
+    - run_cmd python tools/ci/build_pytest_apps.py examples --target esp32c2 --size-info $SIZE_INFO_LOCATION -vv
+
 build_pytest_components_esp32:
   extends:
     - .build_pytest_template
@@ -93,6 +100,13 @@ build_pytest_components_esp32c3:
   script:
     - run_cmd python tools/ci/build_pytest_apps.py components --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv
 
+build_pytest_components_esp32c2:
+  extends:
+    - .build_pytest_template
+    - .rules:build:component_ut-esp32c2
+  script:
+    - run_cmd python tools/ci/build_pytest_apps.py components --target esp32c2 --size-info $SIZE_INFO_LOCATION -vv
+
 build_non_test_components_apps:
   extends:
     - .build_template

+ 2 - 2
conftest.py

@@ -32,8 +32,8 @@ from _pytest.terminal import TerminalReporter
 from pytest_embedded.plugin import apply_count, parse_configuration
 from pytest_embedded.utils import find_by_suffix
 
-SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3']
-PREVIEW_TARGETS = ['linux', 'esp32h2', 'esp32c2']
+SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2']
+PREVIEW_TARGETS = ['linux', 'esp32h2']
 DEFAULT_SDKCONFIG = 'default'
 
 

+ 2 - 0
examples/provisioning/wifi_prov_mgr/README.md

@@ -1,3 +1,5 @@
+| Supported Targets | ESP32 | ESP32-S2 | ESP32-S3 | ESP32-C3 |
+| ----------------- | ----- | -------- | -------- | -------- |
 # Wi-Fi Provisioning Manager Example
 
 (See the README.md file in the upper level 'examples' directory for more information about examples.)

+ 2 - 0
examples/system/ota/native_ota_example/README.md

@@ -1,3 +1,5 @@
+| Supported Targets | ESP32 | ESP32-S2 | ESP32-S3 | ESP32-C3 |
+| ----------------- | ----- | -------- | -------- | -------- |
 # Native OTA example
 
 This example is based on `app_update` component's APIs.

+ 3 - 2
pytest.ini

@@ -19,8 +19,9 @@ markers =
   esp32s2: support esp32s2 target
   esp32s3: support esp32s3 target
   esp32c3: support esp32c3 target
-  supported_targets: support all supported targets ('esp32', 'esp32s2', 'esp32c3', 'esp32s3')
-  preview_targets: support all preview targets ('linux', 'esp32h2', 'esp32c2')
+  esp32c2: support esp32c2 target
+  supported_targets: support all supported targets ('esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2')
+  preview_targets: support all preview targets ('linux', 'esp32h2')
   all_targets: support all targets, including supported ones and preview ones
 
   # env markers

+ 12 - 11
tools/ci/build_pytest_apps.py

@@ -18,13 +18,13 @@ from idf_ci_utils import IDF_PATH, get_pytest_cases
 try:
     from build_apps import build_apps
     from find_apps import find_builds_for_app
-    from find_build_apps import BuildItem, config_rules_from_str, setup_logging
+    from find_build_apps import BuildItem, CMakeBuildSystem, config_rules_from_str, setup_logging
 except ImportError:
     sys.path.append(os.path.join(IDF_PATH, 'tools'))
 
     from build_apps import build_apps
     from find_apps import find_builds_for_app
-    from find_build_apps import BuildItem, config_rules_from_str, setup_logging
+    from find_build_apps import BuildItem, CMakeBuildSystem, config_rules_from_str, setup_logging
 
 
 def main(args: argparse.Namespace) -> None:
@@ -50,15 +50,16 @@ def main(args: argparse.Namespace) -> None:
     config_rules = config_rules_from_str(args.config or [])
     for app_dir in app_dirs:
         app_dir = os.path.realpath(app_dir)
-        build_items += find_builds_for_app(
-            app_path=app_dir,
-            work_dir=app_dir,
-            build_dir='build_@t_@w',
-            build_log=f'{app_dir}/build_@t_@w/build.log',
-            target_arg=args.target,
-            build_system='cmake',
-            config_rules=config_rules,
-        )
+        if args.target in CMakeBuildSystem.supported_targets(app_dir):
+            build_items += find_builds_for_app(
+                app_path=app_dir,
+                work_dir=app_dir,
+                build_dir='build_@t_@w',
+                build_log=f'{app_dir}/build_@t_@w/build.log',
+                target_arg=args.target,
+                build_system='cmake',
+                config_rules=config_rules,
+            )
 
     modified_build_items = []
     # auto clean up the binaries if no flag --preserve-all