Skip to content

Commit 7de7b7a

Browse files
devversionkara
authored andcommitted
ci: move e2e tests from travis to circleci (angular#27937)
PR Close angular#27937
1 parent bb5ddee commit 7de7b7a

File tree

16 files changed

+252
-297
lines changed

16 files changed

+252
-297
lines changed

.circleci/config.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,47 @@ jobs:
446446
- run: yarn karma start ./karma-js.conf.js --single-run --browsers=${KARMA_JS_BROWSERS}
447447
- run: ./scripts/saucelabs/stop-tunnel.sh
448448

449+
legacy-e2e-tests:
450+
<<: *job_defaults
451+
docker:
452+
- image: *browsers_docker_image
453+
steps:
454+
- checkout:
455+
<<: *post_checkout
456+
- restore_cache:
457+
key: *cache_key
458+
- *define_env_vars
459+
- *setup_circleci_bazel_config
460+
- *yarn_install
461+
- *setup_bazel_remote_execution
462+
- attach_workspace:
463+
at: dist
464+
# Build the e2e tests using the existing Bazel "packages-dist" output that has been
465+
# attached to this job. This avoids multiple rebuilds across various CI jobs.
466+
- run: ./scripts/build-e2e-tests.sh --use-existing-packages-dist
467+
- run:
468+
name: Starting servers for e2e tests
469+
command: yarn gulp serve serve-examples
470+
background: true
471+
- run: NODE_PATH=$NODE_PATH:./dist/all yarn protractor ./protractor-e2e.conf.js --bundles=true
472+
- run: NODE_PATH=$NODE_PATH:./dist/all yarn protractor ./protractor-examples-e2e.conf.js --bundles=true
473+
- run: NODE_PATH=$NODE_PATH:./dist/all yarn protractor ./protractor-perf.conf.js --bundles=true --dryrun
474+
475+
legacy-misc-tests:
476+
<<: *job_defaults
477+
steps:
478+
- checkout:
479+
<<: *post_checkout
480+
- restore_cache:
481+
key: *cache_key
482+
- *define_env_vars
483+
- *yarn_install
484+
- attach_workspace:
485+
at: dist
486+
- run: yarn gulp check-cycle
487+
# TODO: disabled because the Bazel packages-dist does not seem to have map files for
488+
# the ESM5/ES2015 output. See: https://github.com/angular/angular/issues/27966
489+
# - run: yarn gulp source-map-test
449490

450491
workflows:
451492
version: 2
@@ -461,6 +502,12 @@ workflows:
461502
- deploy_aio:
462503
requires:
463504
- test_aio
505+
- legacy-e2e-tests:
506+
requires:
507+
- build-packages-dist
508+
- legacy-misc-tests:
509+
requires:
510+
- build-packages-dist
464511
- test_aio_local:
465512
requires:
466513
- build-packages-dist
@@ -501,6 +548,8 @@ workflows:
501548
# Get the artifacts to publish from the build-packages-dist job
502549
# since the publishing script expects the legacy outputs layout.
503550
- build-packages-dist
551+
- legacy-e2e-tests
552+
- legacy-misc-tests
504553
- legacy-unit-tests-local
505554
- legacy-unit-tests-saucelabs
506555

modules/benchmarks/e2e_test/tree_data.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ export const Benchmarks: Benchmark[] = [
3636
url: 'all/benchmarks/src/tree/ng2_next/index.html',
3737
buttons: CreateDestroyDetectChangesButtons,
3838
ignoreBrowserSynchronization: true,
39-
// Can't use bundles as we use non exported code
40-
extraParams: [{name: 'bundles', value: false}]
4139
},
4240
{
4341
id: `deepTree.ng2.static`,

modules/build.sh

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env bash
2+
3+
set -x -u -e -o pipefail
4+
5+
# Go to project directory.
6+
cd $(dirname ${0})/..
7+
8+
# Build the "modules" JS output. The module e2e tests can be served by running "gulp serve".
9+
yarn tsc -p ./modules
10+
11+
# Commands that have been extracted from the deleted "build.sh". These are responsible for
12+
# copying assets and vendor files for the playground e2e tests to the dist output.
13+
(
14+
echo "=> Copying asset and vendor files which are needed for playground e2e tests."
15+
mkdir -p ./dist/all/playground/vendor
16+
cp -r ./modules/playground ./dist/all/
17+
cp -r ./modules/playground/favicon.ico ./dist/
18+
cd ./dist/all/playground/vendor
19+
ln -s ../../../../node_modules/core-js/client/core.js .
20+
ln -s ../../../../node_modules/zone.js/dist/zone.js .
21+
ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js .
22+
ln -s ../../../../node_modules/systemjs/dist/system.src.js .
23+
ln -s ../../../../node_modules/base64-js .
24+
ln -s ../../../../node_modules/reflect-metadata/Reflect.js .
25+
ln -s ../../../../node_modules/rxjs .
26+
ln -s ../../../../node_modules/angular/angular.js .
27+
ln -s ../../../../node_modules/hammerjs/hammer.js .
28+
)
29+
30+
# Commands that have been extracted from the deleted "build.sh". These are responsible for
31+
# copying assets and vendor files for the benchmarks e2e tests to the dist output.
32+
(
33+
echo "=> Copying asset and vendor files which are needed for e2e benchmarks."
34+
mkdir -p ./dist/all/benchmarks/vendor
35+
cp -r ./modules/benchmarks ./dist/all/
36+
cp -r ./modules/benchmarks/favicon.ico ./dist/
37+
cd ./dist/all/benchmarks/vendor
38+
ln -s ../../../../node_modules/core-js/client/core.js .
39+
ln -s ../../../../node_modules/zone.js/dist/zone.js .
40+
ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js .
41+
ln -s ../../../../node_modules/systemjs/dist/system.src.js .
42+
ln -s ../../../../node_modules/reflect-metadata/Reflect.js .
43+
ln -s ../../../../node_modules/rxjs .
44+
ln -s ../../../../node_modules/angular/angular.js .
45+
ln -s ../../../../node_modules/incremental-dom/dist/incremental-dom-cjs.js
46+
)

modules/playground/src/web_workers/animations/loader.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'rxjs': '/all/playground/vendor/rxjs',
20-
},
21-
packages: {
22-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
23-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
29-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
30-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
31-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
34-
},
35-
36-
defaultJSExtensions: true
37-
});
13+
importScripts('../worker-systemjs-configure.js');
3814

3915
System.import('playground/src/web_workers/animations/background_index')
4016
.then(

modules/playground/src/web_workers/images/loader.js

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'base64-js': '/all/playground/vendor/base64-js',
20-
'rxjs': '/all/playground/vendor/rxjs',
21-
},
22-
packages: {
23-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
29-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
30-
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
31-
'base64-js': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
34-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
35-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
36-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
37-
},
38-
39-
defaultJSExtensions: true
40-
});
13+
importScripts('../worker-systemjs-configure.js');
4114

4215
System.import('playground/src/web_workers/images/background_index')
4316
.then(

modules/playground/src/web_workers/input/loader.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'rxjs': '/all/playground/vendor/rxjs',
20-
},
21-
packages: {
22-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
23-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
29-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
30-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
31-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
34-
},
35-
36-
defaultJSExtensions: true
37-
});
13+
importScripts('../worker-systemjs-configure.js');
3814

3915
System.import('playground/src/web_workers/input/background_index')
4016
.then(

modules/playground/src/web_workers/kitchen_sink/loader.js

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'rxjs': '/all/playground/vendor/rxjs',
20-
},
21-
packages: {
22-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
23-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
29-
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
30-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
31-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
34-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
35-
},
36-
37-
defaultJSExtensions: true
38-
});
13+
importScripts('../worker-systemjs-configure.js');
3914

4015
System.import('playground/src/web_workers/kitchen_sink/background_index')
4116
.then(

modules/playground/src/web_workers/message_broker/loader.js

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'rxjs': '/all/playground/vendor/rxjs',
20-
},
21-
packages: {
22-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
23-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
29-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
30-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
31-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
34-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
35-
},
36-
37-
defaultJSExtensions: true
38-
});
13+
importScripts('../worker-systemjs-configure.js');
3914

4015
System.import('playground/src/web_workers/message_broker/background_index')
4116
.then(

modules/playground/src/web_workers/router/loader.js

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,32 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'rxjs': '/all/playground/vendor/rxjs',
20-
},
21-
packages: {
22-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
23-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
29-
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
30-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
31-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
34-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
35-
},
36-
37-
defaultJSExtensions: true
38-
});
13+
importScripts('../worker-systemjs-configure.js');
3914

4015
System.import('playground/src/web_workers/router/background_index')
4116
.then(

modules/playground/src/web_workers/todo/loader.js

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,7 @@ importScripts(
1010
'../../../vendor/core.js', '../../../vendor/zone.js',
1111
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
1212
'../../../vendor/Reflect.js');
13-
14-
15-
System.config({
16-
baseURL: '/all',
17-
18-
map: {
19-
'rxjs': '/all/playground/vendor/rxjs',
20-
},
21-
packages: {
22-
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
23-
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
24-
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
25-
'@angular/forms': {main: 'index.js', defaultExtension: 'js'},
26-
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
27-
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
28-
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
29-
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
30-
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
31-
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
32-
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
33-
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
34-
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
35-
'rxjs': {main: 'index.js', defaultExtension: 'js'},
36-
},
37-
38-
defaultJSExtensions: true
39-
});
13+
importScripts('../worker-systemjs-configure.js');
4014

4115
System.import('playground/src/web_workers/todo/background_index')
4216
.then(

0 commit comments

Comments
 (0)