.all_targets: &all_targets - esp32 - esp32s2 - esp32s3 - esp32c3 .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:integration_test: labels: - build patterns: - build_components - build_system # ------------- # Special Cases # ------------- "build:example_test-esp32": labels: - build - weekend_test # only have esp32 jobs - iperf_stress_test # only have esp32 jobs patterns: - build_components - build_system "build:example_test-esp32c3": # esp32c3 test is only run by label, but build jobs should always be triggered labels: - build - example_test patterns: - build_components - build_system - build-example_test - example_test #################### # Target Test Jobs # #################### "test:{0}-{1}": matrix: - *target_test - *all_targets labels: # For each rule, use labels and - - "{0}" - "{0}_{1}" patterns: # For each rule, use patterns and build- - "{0}" - "build-{0}" included_in: # Parent rules - "build:{0}-{1}" - build:target_test - test:target_test - test:any_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}" patterns: - component_ut - "build-component_ut-{0}" included_in: - "build:component_ut-{0}" - build:target_test - test:target_test - test:any_test "test:example_test-esp32c3": # For esp32c3 we trigger only with label "labels:example_test-esp32c3": labels: - example_test_esp32c3 included_in: - build:example_test-esp32c3 - build:target_test "test:integration_test": labels: - "integration_test" patterns: - "integration_test" included_in: - "build:integration_test" - build:target_test - test:target_test - test:any_test "test:host_test": labels: - host_test patterns: - host_test included_in: - test:any_test "test:submodule": labels: - submodule patterns: - submodule ################################# # Triggered Only By Labels Jobs # ################################# "labels:{0}": matrix: - [weekend_test, iperf_stress_test, nvs_coverage] labels: - "{0}" "labels:fuzzer_test-weekend_test": labels: - fuzzer_test - weekend_test