mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 23:21:54 +00:00 
			
		
		
		
	Merge branch 'determine_jobs_comp_split' into determine_jobs_comp_split_test
This commit is contained in:
		
							
								
								
									
										6
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @@ -537,12 +537,12 @@ jobs: | ||||
|         if: always() | ||||
|  | ||||
|   test-build-components-split: | ||||
|     name: Test components batch (${{ join(matrix.components, ' ') }}) | ||||
|     name: Test components batch (${{ matrix.components }}) | ||||
|     runs-on: ubuntu-24.04 | ||||
|     needs: | ||||
|       - common | ||||
|       - determine-jobs | ||||
|     if: github.event_name == 'pull_request' && needs.determine-jobs.outputs.component-test-batches != '[]' | ||||
|     if: github.event_name == 'pull_request' && fromJSON(needs.determine-jobs.outputs.component-test-count) > 0 | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       max-parallel: ${{ (startsWith(github.base_ref, 'beta') || startsWith(github.base_ref, 'release')) && 8 || 4 }} | ||||
| @@ -555,7 +555,7 @@ jobs: | ||||
|           df -h | ||||
|  | ||||
|       - name: List components | ||||
|         run: echo ${{ join(matrix.components, ' ') }} | ||||
|         run: echo ${{ matrix.components }} | ||||
|  | ||||
|       - name: Cache apt packages | ||||
|         uses: awalsh128/cache-apt-pkgs-action@acb598e5ddbc6f68a970c5da0688d2f3a9f04d05 # v1.5.3 | ||||
|   | ||||
| @@ -695,15 +695,17 @@ def main() -> None: | ||||
|  | ||||
|     # Split components into batches for CI testing | ||||
|     # This intelligently groups components with similar bus configurations | ||||
|     component_test_batches: list[list[str]] | ||||
|     component_test_batches: list[str] | ||||
|     if changed_components_with_tests: | ||||
|         tests_dir = Path(root_path) / ESPHOME_TESTS_COMPONENTS_PATH | ||||
|         component_test_batches, _ = create_intelligent_batches( | ||||
|         batches, _ = create_intelligent_batches( | ||||
|             components=changed_components_with_tests, | ||||
|             tests_dir=tests_dir, | ||||
|             batch_size=COMPONENT_TEST_BATCH_SIZE, | ||||
|             directly_changed=directly_changed_with_tests, | ||||
|         ) | ||||
|         # Convert batches to space-separated strings for CI matrix | ||||
|         component_test_batches = [" ".join(batch) for batch in batches] | ||||
|     else: | ||||
|         component_test_batches = [] | ||||
|  | ||||
|   | ||||
| @@ -152,14 +152,14 @@ def test_main_all_tests_should_run( | ||||
|     assert output["memory_impact"]["should_run"] == "false" | ||||
|     assert output["cpp_unit_tests_run_all"] is False | ||||
|     assert output["cpp_unit_tests_components"] == ["wifi", "api", "sensor"] | ||||
|     # component_test_batches should be present and be a list of lists | ||||
|     # component_test_batches should be present and be a list of space-separated strings | ||||
|     assert "component_test_batches" in output | ||||
|     assert isinstance(output["component_test_batches"], list) | ||||
|     # Each batch should be a list of component names | ||||
|     # Each batch should be a space-separated string of component names | ||||
|     for batch in output["component_test_batches"]: | ||||
|         assert isinstance(batch, list) | ||||
|         for component in batch: | ||||
|             assert isinstance(component, str) | ||||
|         assert isinstance(batch, str) | ||||
|         # Should contain at least one component (no empty batches) | ||||
|         assert len(batch) > 0 | ||||
|  | ||||
|  | ||||
| def test_main_no_tests_should_run( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user