Skip to content
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

test: saucelab targets for all karma tests #35516

Closed

Conversation

gregmagolan
Copy link
Contributor

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • angular.io application / infrastructure changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

@gregmagolan gregmagolan force-pushed the saucelab-all-karma-tests branch 4 times, most recently from 300a023 to 20f29a9 Compare February 18, 2020 18:48
@gregmagolan gregmagolan marked this pull request as ready for review February 18, 2020 18:48
@gregmagolan gregmagolan added target: patch This PR is targeted for the next patch release area: build & ci Related the build and CI infrastructure of the project labels Feb 18, 2020
@ngbot ngbot bot added this to the needsTriage milestone Feb 18, 2020
@josephperrott
Copy link
Member

In talking with Igor, we realized that if we enable saucelabs for both Ivy and VE on all of our PRs, we run into concurrency issues causing resource contention. We likely need to run a subset of these tests for all PRs and on master and do the full run on a cron each day.

@gregmagolan
Copy link
Contributor Author

SGTM. I'll list the all the tests here and we can pick the ones (if any) we want to run in PR. The Ivy & VE jobs can be run sequentially to reduce resource contention (tho you'll still get that for when multiple PRs are building).

@gregmagolan
Copy link
Contributor Author

gregmagolan commented Feb 18, 2020

Here all of the tests currently running and how long they take:

ViewEngine (25 minutes)

INFO: Elapsed time: 1380.399s, Critical Path: 135.52s
//packages/animations/browser/test:saucelabs_test_web                    PASSED in 53.5s
//packages/animations/test:saucelabs_test_web                            PASSED in 45.4s
//packages/common/http/test:saucelabs_test_web                           PASSED in 42.0s
//packages/common/http/testing/test:saucelabs_test_web                   PASSED in 46.0s
//packages/common/test:saucelabs_test_web                                PASSED in 51.6s
//packages/compiler/test:saucelabs_test_web                              PASSED in 53.2s
//packages/compiler/test/css_parser:saucelabs_css_parser_web             PASSED in 45.9s
//packages/compiler/test/expression_parser:saucelabs_expression_parser_web PASSED in 44.0s
//packages/compiler/test/ml_parser:saucelabs_ml_parser_web               PASSED in 44.3s
//packages/compiler/test/selector:saucelabs_selector_web                 PASSED in 44.9s
//packages/core/test:saucelabs_test_web                                  PASSED in 97.9s
//packages/core/test/acceptance:saucelabs_acceptance_web                 PASSED in 77.9s
//packages/core/test/render3:saucelabs_render3_web                       PASSED in 45.2s
//packages/core/test/view:saucelabs_view_web                             PASSED in 54.1s
//packages/forms/test:saucelabs_test_web                                 PASSED in 55.1s
//packages/http/test:saucelabs_test_web                                  PASSED in 53.7s
//packages/platform-browser-dynamic/test:saucelabs_test_web              PASSED in 48.7s
//packages/platform-browser/animations/test:saucelabs_test_web           PASSED in 67.1s
//packages/platform-browser/test:saucelabs_test_web                      PASSED in 48.4s
//packages/platform-webworker/test:saucelabs_test_web                    PASSED in 47.4s
//packages/router/upgrade/test:saucelabs_test_web                        PASSED in 44.3s
//packages/upgrade/src/common/test:saucelabs_test                        PASSED in 49.9s
//packages/upgrade/src/dynamic/test:saucelabs_test                       PASSED in 61.6s
//packages/upgrade/static/test:saucelabs_test                            PASSED in 64.7s
//packages/upgrade/static/testing/test:saucelabs_test                    PASSED in 49.6s

Ivy (19 minutes)

INFO: Elapsed time: 1036.857s, Critical Path: 121.68s
//packages/animations/browser/test:saucelabs_test_web                    PASSED in 45.2s
//packages/animations/test:saucelabs_test_web                            PASSED in 44.6s
//packages/common/http/test:saucelabs_test_web                           PASSED in 47.4s
//packages/common/http/testing/test:saucelabs_test_web                   PASSED in 45.5s
//packages/common/test:saucelabs_test_web                                PASSED in 50.8s
//packages/compiler/test/css_parser:saucelabs_css_parser_web             PASSED in 47.1s
//packages/compiler/test/expression_parser:saucelabs_expression_parser_web PASSED in 66.2s
//packages/compiler/test/ml_parser:saucelabs_ml_parser_web               PASSED in 45.1s
//packages/compiler/test/selector:saucelabs_selector_web                 PASSED in 44.5s
//packages/core/test/acceptance:saucelabs_acceptance_web                 PASSED in 63.6s
//packages/core/test/render3:saucelabs_render3_web                       PASSED in 43.3s
//packages/http/test:saucelabs_test_web                                  PASSED in 45.3s
//packages/platform-browser-dynamic/test:saucelabs_test_web              PASSED in 45.9s
//packages/platform-browser/test:saucelabs_test_web                      PASSED in 48.6s
//packages/platform-webworker/test:saucelabs_test_web                    PASSED in 46.9s
//packages/router/upgrade/test:saucelabs_test_web                        PASSED in 42.4s
//packages/upgrade/src/common/test:saucelabs_test                        PASSED in 44.6s
//packages/upgrade/src/dynamic/test:saucelabs_test                       PASSED in 51.8s
//packages/upgrade/static/test:saucelabs_test                            PASSED in 57.6s
//packages/upgrade/static/testing/test:saucelabs_test                    PASSED in 46.5s

NB: See the PR diff for the few that are failing on IE 10 & 11

These can all get moved to a master-only cron job. Question to answer is which ones (if any) do we want to run on all PRs.

@josephperrott
Copy link
Member

For now, lets just run the same subset of tests we were running before on PRs and on master, and then on a cron we can set up to run them all.

We should have the cron notify the dev-infra failures channel if it fails.

@gregmagolan
Copy link
Contributor Author

Sounds good. Currently legacy saucelabs test runs around 6000 specs in a single karma config which takes around 7m (https://app.circleci.com/jobs/github/angular/angular/628633). I suspect that running the same specs across multiple karma configs will take longer with the extra browser provisioning & teardown overhead. I'll account for which ones are being run right now and compare to what is run in the current 25m ViewEngine bazel saucelabs job that runs 25 different karma_web_test targets.

@devversion @josephperrott I wonder it would be possible to tell the karma-sauce-launcher (https://github.com/karma-runner/karma-sauce-launcher) to keep browsers it provisioned open for some amount of time so that they could be re-used in the tunnel by the next karma-sauce-launcher?

@gregmagolan
Copy link
Contributor Author

Moved the two bazel saucelabs jobs (Ivy & ViewEngine) to master-only and kept the legacy_saucelabs job for now until we can fix the browsering provisioning with Bazel. CI tested for the master-only jobs here: #35643

The question is if we should run the two saucelabs jobs on each master commit or on a cron job?

gregmagolan added a commit to gregmagolan/angular that referenced this pull request Feb 24, 2020
Copy link
Member

@josephperrott josephperrott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@gregmagolan gregmagolan added action: merge The PR is ready for merge by the caretaker and removed action: merge The PR is ready for merge by the caretaker labels Feb 24, 2020
@gregmagolan
Copy link
Contributor Author

Ready to go. #35643 all green

@mhevery mhevery closed this in 3400af6 Feb 25, 2020
mhevery pushed a commit that referenced this pull request Feb 25, 2020
mhevery pushed a commit that referenced this pull request Feb 25, 2020
mhevery pushed a commit that referenced this pull request Feb 25, 2020
mhevery pushed a commit that referenced this pull request Feb 25, 2020
mhevery pushed a commit that referenced this pull request Feb 25, 2020
mhevery pushed a commit that referenced this pull request Feb 25, 2020
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Mar 27, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker area: build & ci Related the build and CI infrastructure of the project cla: yes target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants