105 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| load(":angular_integration_test.bzl", "angular_integration_test")
 | |
| 
 | |
| # Some integration ports must be managed manually to be unique and in other
 | |
| # cases the tests are able to select a random free port.
 | |
| #
 | |
| # Where `ng e2e` is used we pass `ng e2e --port 0` which prompts the cli
 | |
| # to select a random free port for the the e2e test. The protractor.conf is
 | |
| # automatically updated to use this port.
 | |
| #
 | |
| # Karma automatically finds a free port so no effort is needed there.
 | |
| #
 | |
| # The manually configured ports are as follows:
 | |
| #
 | |
| #   TEST                                PORT        CONFIGURATION
 | |
| #   ====                                ====        =============
 | |
| #   dynamic-compiler                    4201        /e2e/browser.config.json: "port": 4201
 | |
| #   hello_world__closure                4202        /e2e/browser.config.json: "port": 4202
 | |
| #   hello_world__systemjs_umd           4203        /bs-config.e2e.json: "port": 4203
 | |
| #   i18n                                4204        /e2e/browser.config.json: "port": 4204
 | |
| #   ng_elements                         4205        /e2e/browser.config.json: "port": 4205
 | |
| #   platform-server                     4206        /src/server.ts: app.listen(4206,...
 | |
| 
 | |
| # Map of integration tests to tags.
 | |
| # A subset of these tests fail or are not meant to be run with ivy bundles. These are tagged
 | |
| # "no-ivy-aot".
 | |
| INTEGRATION_TESTS = {
 | |
|     "bazel": {
 | |
|         "tags": [
 | |
|             # Bazel-in-bazel tests are resource intensive and should not be over-parallized
 | |
|             # as they will compete for the resources of other parallel tests slowing
 | |
|             # everything down. Ask Bazel to allocate multiple CPUs for these tests with "cpu:n" tag.
 | |
|             "cpu:3",
 | |
|             "no-ivy-aot",
 | |
|         ],
 | |
|     },
 | |
|     "cli-hello-world": {"commands": "payload_size_tracking"},
 | |
|     "cli-hello-world-ivy-compat": {"commands": "payload_size_tracking"},
 | |
|     "cli-hello-world-ivy-i18n": {
 | |
|         "commands": "payload_size_tracking",
 | |
|         # TODO: (FW-2165) cli-hello-world-ivy-i18n fails on a bundle size check with Ivy bundles
 | |
|         "tags": ["fixme-ivy-aot"],
 | |
|     },
 | |
|     "cli-hello-world-ivy-minimal": {"commands": "payload_size_tracking"},
 | |
|     "cli-hello-world-lazy": {
 | |
|         "commands": "payload_size_tracking",
 | |
|         # TODO: (FW-2165) cli-hello-world-lazy fails on a bundle size check with Ivy bundles
 | |
|         "tags": ["fixme-ivy-aot"],
 | |
|     },
 | |
|     "cli-hello-world-lazy-rollup": {
 | |
|         "commands": "payload_size_tracking",
 | |
|         # TODO: cli-hello-world-lazy-rollup fails on a bundle size check because Ivy and VE sizes are different
 | |
|         "tags": ["no-ivy-aot"],
 | |
|     },
 | |
|     "dynamic-compiler": {"tags": ["no-ivy-aot"]},
 | |
|     "hello_world__closure": {
 | |
|         # TODO: Re-enable the payload_size_tracking command:
 | |
|         #   We should define ngDevMode to false in Closure, but --define only works in the global scope.
 | |
|         #   With ngDevMode not being set to false, this size tracking test provides little value but a lot of
 | |
|         #   headache to continue updating the size.
 | |
|         "tags": ["no-ivy-aot"],
 | |
|     },
 | |
|     "hello_world__systemjs_umd": {
 | |
|         # Special case for `hello_world__systemjs_umd` test as we want to pin
 | |
|         # `systems` at version 0.20.2 and not link to the the root @npm//systemjs
 | |
|         # which is stuck at 0.18.10 and can't be updated to 0.20.2 without
 | |
|         # breaking the legacy saucelabs job.
 | |
|         "pinned_npm_packages": ["systemjs"],
 | |
|     },
 | |
|     "i18n": {"tags": ["no-ivy-aot"]},
 | |
|     "injectable-def": {"tags": ["no-ivy-aot"]},
 | |
|     "ivy-i18n": {"tags": ["no-ivy-aot"]},
 | |
|     "language_service_plugin": {},
 | |
|     "ng_elements": {"tags": ["no-ivy-aot"]},
 | |
|     "ng_elements_schematics": {"tags": ["no-ivy-aot"]},
 | |
|     "ng_update": {},
 | |
|     "ng_update_migrations": {"tags": ["no-ivy-aot"]},
 | |
|     "ngcc": {"tags": ["no-ivy-aot"]},
 | |
|     "platform-server": {"tags": ["no-ivy-aot"]},
 | |
|     "service-worker-schema": {},
 | |
|     "side-effects": {"tags": ["no-ivy-aot"]},
 | |
|     "terser": {},
 | |
|     "typings_test_ts39": {
 | |
|         # Special case for `typings_test_ts39` test as we want to pin
 | |
|         # `typescript` at version 3.9.x for that test and not link to the
 | |
|         # root @npm//typescript package.
 | |
|         "pinned_npm_packages": ["typescript"],
 | |
|     },
 | |
|     "typings_test_ts40": {
 | |
|         # Special case for `typings_test_ts40` test as we want to pin
 | |
|         # `typescript` at version 4.0.x for that test and not link to the
 | |
|         # root @npm//typescript package.
 | |
|         "pinned_npm_packages": ["typescript"],
 | |
|     },
 | |
| }
 | |
| 
 | |
| [
 | |
|     angular_integration_test(
 | |
|         name = test_folder,
 | |
|         commands = INTEGRATION_TESTS[test_folder].get("commands", "default"),
 | |
|         pinned_npm_packages = INTEGRATION_TESTS[test_folder].get("pinned_npm_packages", []),
 | |
|         tags = INTEGRATION_TESTS[test_folder].get("tags", []),
 | |
|     )
 | |
|     for test_folder in INTEGRATION_TESTS
 | |
| ]
 |