-
Notifications
You must be signed in to change notification settings - Fork 27.2k
build: npm_integration_test && angular_integration_test #33927
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
68721dc
18928b7
8d49b93
a7af4f5
71036e8
9745c79
e9c027c
1a30a6c
ff75f02
9ec7ec8
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,7 +4,61 @@ dist | |
| aio/content | ||
| aio/node_modules | ||
| aio/tools/examples/shared/node_modules | ||
| integration/bazel | ||
| integration/bazel/bazel-bazel | ||
| integration/bazel/bazel-bin | ||
| integration/bazel/bazel-out | ||
| integration/bazel/bazel-testlogs | ||
| integration/bazel/node_modules | ||
| integration/bazel/.yarn_local_cache | ||
| integration/bazel-schematics/node_modules | ||
| integration/bazel-schematics/.yarn_local_cache | ||
| integration/bazel-schematics/demo | ||
| integration/cli-hello-world/node_modules | ||
| integration/cli-hello-world-ivy-compat/node_modules | ||
| integration/cli-hello-world-ivy-i18n/node_modules | ||
| integration/cli-hello-world-ivy-minimal/node_modules | ||
| integration/cli-hello-world-lazy/node_modules | ||
| integration/cli-hello-world-lazy-rollup/node_modules | ||
| integration/dynamic-compiler/node_modules | ||
| integration/hello_world__closure/node_modules | ||
| integration/hello_world__systemjs_umd/node_modules | ||
| integration/i18n/node_modules | ||
| integration/injectable-def/node_modules | ||
| integration/ivy-i18n/node_modules | ||
| integration/language_service_plugin/node_modules | ||
| integration/ng_elements/node_modules | ||
| integration/ng_elements_schematics/node_modules | ||
| integration/ng_update/node_modules | ||
| integration/ng_update_migrations/node_modules | ||
| integration/ngcc/node_modules | ||
| integration/platform-server/node_modules | ||
| integration/service-worker-schema/node_modules | ||
| integration/side-effects/node_modules | ||
| integration/terser/node_modules | ||
| integration/typings_test_ts36/node_modules | ||
| integration/typings_test_ts37/node_modules | ||
| integration/cli-hello-world/.yarn_local_cache | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do we still need the local also doesn't
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. one thing I tried recently was to use
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @gregmagolan does this need an followup?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was an old issue about this for bazel and a new one just got opened up by Or from Wix. bazelbuild/bazel#7093. I commented there. Hopefully will get fixed soon as this file is getting out of hand.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh. That issue is from Jan 11, 2019. Not 2020. 🙄
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We will definitely forget about updating this file as we add/remove integration projects.
|
||
| integration/cli-hello-world-ivy-compat/.yarn_local_cache | ||
| integration/cli-hello-world-ivy-i18n/.yarn_local_cache | ||
| integration/cli-hello-world-ivy-minimal/.yarn_local_cache | ||
| integration/cli-hello-world-lazy/.yarn_local_cache | ||
| integration/cli-hello-world-lazy-rollup/.yarn_local_cache | ||
| integration/dynamic-compiler/.yarn_local_cache | ||
| integration/hello_world__closure/.yarn_local_cache | ||
| integration/hello_world__systemjs_umd/.yarn_local_cache | ||
| integration/i18n/.yarn_local_cache | ||
| integration/injectable-def/.yarn_local_cache | ||
| integration/ivy-i18n/.yarn_local_cache | ||
| integration/language_service_plugin/.yarn_local_cache | ||
| integration/ng_elements/.yarn_local_cache | ||
| integration/ng_elements_schematics/.yarn_local_cache | ||
| integration/ng_update/.yarn_local_cache | ||
| integration/ng_update_migrations/.yarn_local_cache | ||
| integration/ngcc/.yarn_local_cache | ||
| integration/platform-server/.yarn_local_cache | ||
| integration/service-worker-schema/.yarn_local_cache | ||
| integration/side-effects/.yarn_local_cache | ||
| integration/terser/.yarn_local_cache | ||
| integration/typings_test_ts36/.yarn_local_cache | ||
| integration/typings_test_ts37/.yarn_local_cache | ||
| packages/bazel/node_modules | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -136,6 +136,19 @@ commands: | |
| # circleci/node:x.x.x-browsers image. | ||
| sudo apt-get -y install libgtk-3-0 libasound2 libnss3 libxss1 | ||
|
|
||
| # Install java runtime which is required by some integration tests such as | ||
| # //integration:hello_world__closure_test, //integration:i18n_test and | ||
| # //integration:ng_elements_test to run the closure compiler | ||
| install_java: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why was this not needed before?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The circle node browsers docker image included Java but now we're using the bare circleci node image since we have puppeteer :)
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh wow that was surprising, didn't expect the browser imagines to also randomly include that. Good thing it's explicit now. Again it highlights on how much we rely on hidden stuff from those images. |
||
| description: Install java | ||
| steps: | ||
| - run: | ||
| name: Install java | ||
| command: | | ||
| sudo apt-get update | ||
| # Install java runtime | ||
| sudo apt-get install default-jre | ||
|
|
||
| # Initializes the CI environment by setting up common environment variables. | ||
| init_environment: | ||
| description: Initializing environment (setting up variables) | ||
|
|
@@ -281,10 +294,16 @@ jobs: | |
| test: | ||
| executor: | ||
| name: default-executor | ||
| resource_class: xlarge | ||
| # Now that large integration tests are running locally in parallel (they can't run on RBE yet | ||
| # as they require network access for yarn install), this test is running out of memory | ||
| # consistently with the xlarge machine. | ||
| # TODO: switch back to xlarge once integration tests are running on remote-exec | ||
| resource_class: 2xlarge+ | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I heard from Joey that 2xlarge+ didn't decrease the job execution time over 2xlarge, did it turn out that we can utilize the biggest vm afterall?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I made a difference once I moved the integration/bazel & integration/bazel-schematics tests to work in the general |
||
| steps: | ||
| - custom_attach_workspace | ||
| - init_environment | ||
| - install_chrome_libs | ||
| - install_java | ||
| - run: | ||
| command: yarn bazel test //... --build_tag_filters=-ivy-only --test_tag_filters=-ivy-only | ||
| no_output_timeout: 20m | ||
|
|
@@ -297,6 +316,7 @@ jobs: | |
| steps: | ||
| - custom_attach_workspace | ||
| - init_environment | ||
| - install_chrome_libs | ||
| # We need to explicitly specify the --symlink_prefix option because otherwise we would | ||
| # not be able to easily find the output bin directory when uploading artifacts for size | ||
| # measurements. | ||
|
|
@@ -561,7 +581,7 @@ jobs: | |
| # of memory. Together with the system under test, this can exhaust the RAM | ||
| # on a 4G worker so we use a larger machine here too. | ||
| resource_class: xlarge | ||
| parallelism: 4 | ||
| parallelism: 3 | ||
|
IgorMinar marked this conversation as resolved.
Outdated
|
||
| steps: | ||
| - custom_attach_workspace | ||
| - init_environment | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,100 @@ | ||
| 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 | ||
| # automaticaly 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,... | ||
|
IgorMinar marked this conversation as resolved.
Outdated
|
||
|
|
||
| # 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": [ | ||
| # 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", | ||
| ], | ||
| "bazel-schematics": [ | ||
| # Bazel-in-bazel tests are resource intensive and should not be over-parallized | ||
| # as they will complete 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": [], | ||
| "cli-hello-world-ivy-compat": [], | ||
| "cli-hello-world-ivy-i18n": ["no-ivy-aot"], | ||
| "cli-hello-world-ivy-minimal": [], | ||
| "cli-hello-world-lazy": [], | ||
| "cli-hello-world-lazy-rollup": [], | ||
| "dynamic-compiler": ["no-ivy-aot"], | ||
| "hello_world__closure": ["no-ivy-aot"], | ||
| "i18n": ["no-ivy-aot"], | ||
| "injectable-def": ["no-ivy-aot"], | ||
| "ivy-i18n": ["no-ivy-aot"], | ||
| "language_service_plugin": [], | ||
| "ng_elements": ["no-ivy-aot"], | ||
| # TODO: fix ng_elements_schematics with Bazel which was added recently and uses a new pattern | ||
| # "ng_elements_schematics": ["no-ivy-aot"], | ||
| "ng_update": [], | ||
| "ng_update_migrations": ["no-ivy-aot"], | ||
| "ngcc": ["no-ivy-aot"], | ||
| "platform-server": ["no-ivy-aot"], | ||
| "service-worker-schema": [], | ||
| "side-effects": ["no-ivy-aot"], | ||
| "terser": [], | ||
| } | ||
|
|
||
| [ | ||
| angular_integration_test( | ||
| name = test_folder + "_test", | ||
| tags = INTEGRATION_TESTS[test_folder], | ||
| test_folder = test_folder, | ||
| ) | ||
| for test_folder in INTEGRATION_TESTS | ||
| ] | ||
|
|
||
| # Special case for `typings_test_ts36` test as we want to pin | ||
| # `typescript` at version 3.6.x for that test and not link to the | ||
| # root @npm//typescript package. | ||
| angular_integration_test( | ||
| name = "typings_test_ts36_test", | ||
| pinned_npm_packages = ["typescript"], | ||
| test_folder = "typings_test_ts36", | ||
| ) | ||
|
|
||
| # Special case for `typings_test_ts37` test as we want to pin | ||
| # `typescript` at version 3.7.x for that test and not link to the | ||
| # root @npm//typescript package. | ||
| angular_integration_test( | ||
| name = "typings_test_ts37_test", | ||
| pinned_npm_packages = ["typescript"], | ||
| test_folder = "typings_test_ts37", | ||
| ) | ||
|
|
||
| # 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. | ||
| angular_integration_test( | ||
| name = "hello_world__systemjs_umd_test", | ||
| pinned_npm_packages = ["systemjs"], | ||
| test_folder = "hello_world__systemjs_umd", | ||
| ) | ||
Uh oh!
There was an error while loading. Please reload this page.