.all_targets: &all_targets - esp32 - esp32s2 - esp32s3 - esp32c3 - esp32h2 - esp32c2 .target_test: &target_test - example_test - custom_test - unit_test - component_ut ############## # Build Jobs # ############## "build": labels: - build patterns: - build_components - build_system included_in: - build:target_test # ------------------- # Specific Build Jobs # ------------------- "build:docker": labels: - build - docker patterns: - docker "build:windows": labels: - build - windows patterns: - build_system - windows "build:macos": labels: - build - macos - macos_test # for backward compatibility patterns: - build_system - macos # --------------- # Build Test Jobs # --------------- "build:{0}-{1}": matrix: - *target_test - *all_targets labels: - build patterns: - build_components - build_system - build_target_test included_in: - "build:{0}" - build:target_test build:integration_test: labels: - build patterns: - build_components - build_system included_in: - build:target_test # ------------- # Special Cases # ------------- "build:{0}-esp32s3": matrix: - *target_test labels: - build - "{0}" - target_test patterns: - build_components - build_system - build_target_test - "{0}" - "build-{0}" included_in: - "build:{0}" - build:target_test "build:component_ut-esp32s3": matrix: - *target_test labels: - build - component_ut - unit_test - target_test patterns: - build_components - build_system - build_target_test - component_ut - unit_test - build-component_ut - build-unit_test included_in: - "build:{0}" - build:target_test #################### # Target Test Jobs # #################### "test:{0}-{1}": matrix: - *target_test - *all_targets labels: # For each rule, use labels and - - "{0}" - "{0}_{1}" - target_test patterns: # For each rule, use patterns and build- - "{0}" - "build-{0}" included_in: # Parent rules - "build:{0}" - "build:{0}-{1}" - build:target_test # ------------- # Special Cases # ------------- "test:component_ut-{0}": # component_ut will trigger by unit_test as well, since now we have 2 kinds of UT matrix: - *all_targets labels: - component_ut - "component_ut_{0}" - unit_test - "unit_test_{0}" - target_test patterns: - component_ut - "build-component_ut-{0}" included_in: - build:component_ut - "build:component_ut-{0}" - build:target_test # To reduce the specific runners' usage. # Do not create these jobs by default patterns on development branches # Can be triggered by labels or related changes "test:{0}-{1}-{2}": matrix: - *target_test - *all_targets - - bt # example_test_005 - wifi # example_test_002, example_test*wifi* - ethernet # example_test*ethernet* - sdio # UT_044, UT_045 - usb # USB Device & Host tests patterns: - "{0}-{1}-{2}" - "{0}-{2}" - "target_test-{2}" labels: - "{0}_{1}" - "{0}" - target_test included_in: - "build:{0}-{1}" - "build:{0}" - build:target_test # For example_test*flash_encryption_wifi_high_traffic jobs # set `INCLUDE_NIGHTLY_RUN` variable when triggered on development branches "test:example_test-{0}-include_nightly_run-rule": matrix: - - esp32 - esp32c3 specific_rules: - "if-example_test-ota-include_nightly_run-rule" included_in: - "build:example_test-{0}" - "build:example_test" - build:target_test # due to the lack of runners, c2 tests will only be triggered by label "test:{0}-esp32c2": matrix: - *target_test labels: - "{0}_esp32c2" included_in: - "build:{0}" - "build:{0}-esp32c2" - build:target_test # overwrite the esp32c2 component ut again "test:component_ut-esp32c2": # component_ut will trigger by unit_test as well, since now we have 2 kinds of UT labels: - "component_ut_esp32c2" - "unit_test_esp32c2" included_in: - build:component_ut - "build:component_ut-esp32c2" - build:target_test # due to the lack of runners, s3 tests will only be triggered by label "test:{0}-esp32s3": matrix: - *target_test labels: - "{0}_esp32s3" included_in: - "build:{0}" - "build:{0}-esp32s3" - build:target_test # overwrite the esp32s3 component ut again "test:component_ut-esp32s3": # component_ut will trigger by unit_test as well, since now we have 2 kinds of UT labels: - "component_ut_esp32s3" - "unit_test_esp32s3" included_in: - build:component_ut - "build:component_ut-esp32s3" - build:target_test "test:integration_test": labels: - integration_test - target_test patterns: - integration_test included_in: - build:integration_test - build:target_test "test:host_test": labels: - host_test patterns: - host_test "test:submodule": labels: - submodule patterns: - submodule ################################# # Triggered Only By Labels Jobs # ################################# "labels:iperf_stress_test": # example_test labels: - iperf_stress_test included_in: - build:example_test - build:example_test-esp32 - build:target_test "labels:weekend_test": # custom test labels: - weekend_test included_in: - build:custom_test - build:custom_test-esp32 - build:target_test "labels:nvs_coverage": # host_test labels: - nvs_coverage "labels:fuzzer_test-weekend_test": # host test labels: - fuzzer_test - weekend_test "labels-protected:lan8720": # UT # FIXME: IDFCI-1176 temporary run this on master/release or with label labels: - lan8720 included_in: - build:unit_test - build:unit_test-esp32 - build:target_test - build:component_ut - build:component_ut-esp32