Skip to content

Commit

Permalink
ci: move e2e tests from travis to circleci (angular#27937)
Browse files Browse the repository at this point in the history
PR Close angular#27937
  • Loading branch information
devversion authored and ngfelixl committed Jan 27, 2019
1 parent 2d16841 commit 7b37ff2
Show file tree
Hide file tree
Showing 16 changed files with 252 additions and 297 deletions.
49 changes: 49 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,47 @@ jobs:
- run: yarn karma start ./karma-js.conf.js --single-run --browsers=${KARMA_JS_BROWSERS}
- run: ./scripts/saucelabs/stop-tunnel.sh

legacy-e2e-tests:
<<: *job_defaults
docker:
- image: *browsers_docker_image
steps:
- checkout:
<<: *post_checkout
- restore_cache:
key: *cache_key
- *define_env_vars
- *setup_circleci_bazel_config
- *yarn_install
- *setup_bazel_remote_execution
- attach_workspace:
at: dist
# Build the e2e tests using the existing Bazel "packages-dist" output that has been
# attached to this job. This avoids multiple rebuilds across various CI jobs.
- run: ./scripts/build-e2e-tests.sh --use-existing-packages-dist
- run:
name: Starting servers for e2e tests
command: yarn gulp serve serve-examples
background: true
- run: NODE_PATH=$NODE_PATH:./dist/all yarn protractor ./protractor-e2e.conf.js --bundles=true
- run: NODE_PATH=$NODE_PATH:./dist/all yarn protractor ./protractor-examples-e2e.conf.js --bundles=true
- run: NODE_PATH=$NODE_PATH:./dist/all yarn protractor ./protractor-perf.conf.js --bundles=true --dryrun

legacy-misc-tests:
<<: *job_defaults
steps:
- checkout:
<<: *post_checkout
- restore_cache:
key: *cache_key
- *define_env_vars
- *yarn_install
- attach_workspace:
at: dist
- run: yarn gulp check-cycle
# TODO: disabled because the Bazel packages-dist does not seem to have map files for
# the ESM5/ES2015 output. See: https://github.com/angular/angular/issues/27966
# - run: yarn gulp source-map-test

workflows:
version: 2
Expand All @@ -461,6 +502,12 @@ workflows:
- deploy_aio:
requires:
- test_aio
- legacy-e2e-tests:
requires:
- build-packages-dist
- legacy-misc-tests:
requires:
- build-packages-dist
- test_aio_local:
requires:
- build-packages-dist
Expand Down Expand Up @@ -501,6 +548,8 @@ workflows:
# Get the artifacts to publish from the build-packages-dist job
# since the publishing script expects the legacy outputs layout.
- build-packages-dist
- legacy-e2e-tests
- legacy-misc-tests
- legacy-unit-tests-local
- legacy-unit-tests-saucelabs

Expand Down
2 changes: 0 additions & 2 deletions modules/benchmarks/e2e_test/tree_data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,6 @@ export const Benchmarks: Benchmark[] = [
url: 'all/benchmarks/src/tree/ng2_next/index.html',
buttons: CreateDestroyDetectChangesButtons,
ignoreBrowserSynchronization: true,
// Can't use bundles as we use non exported code
extraParams: [{name: 'bundles', value: false}]
},
{
id: `deepTree.ng2.static`,
Expand Down
46 changes: 46 additions & 0 deletions modules/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/env bash

set -x -u -e -o pipefail

# Go to project directory.
cd $(dirname ${0})/..

# Build the "modules" JS output. The module e2e tests can be served by running "gulp serve".
yarn tsc -p ./modules

# Commands that have been extracted from the deleted "build.sh". These are responsible for
# copying assets and vendor files for the playground e2e tests to the dist output.
(
echo "=> Copying asset and vendor files which are needed for playground e2e tests."
mkdir -p ./dist/all/playground/vendor
cp -r ./modules/playground ./dist/all/
cp -r ./modules/playground/favicon.ico ./dist/
cd ./dist/all/playground/vendor
ln -s ../../../../node_modules/core-js/client/core.js .
ln -s ../../../../node_modules/zone.js/dist/zone.js .
ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js .
ln -s ../../../../node_modules/systemjs/dist/system.src.js .
ln -s ../../../../node_modules/base64-js .
ln -s ../../../../node_modules/reflect-metadata/Reflect.js .
ln -s ../../../../node_modules/rxjs .
ln -s ../../../../node_modules/angular/angular.js .
ln -s ../../../../node_modules/hammerjs/hammer.js .
)

# Commands that have been extracted from the deleted "build.sh". These are responsible for
# copying assets and vendor files for the benchmarks e2e tests to the dist output.
(
echo "=> Copying asset and vendor files which are needed for e2e benchmarks."
mkdir -p ./dist/all/benchmarks/vendor
cp -r ./modules/benchmarks ./dist/all/
cp -r ./modules/benchmarks/favicon.ico ./dist/
cd ./dist/all/benchmarks/vendor
ln -s ../../../../node_modules/core-js/client/core.js .
ln -s ../../../../node_modules/zone.js/dist/zone.js .
ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js .
ln -s ../../../../node_modules/systemjs/dist/system.src.js .
ln -s ../../../../node_modules/reflect-metadata/Reflect.js .
ln -s ../../../../node_modules/rxjs .
ln -s ../../../../node_modules/angular/angular.js .
ln -s ../../../../node_modules/incremental-dom/dist/incremental-dom-cjs.js
)
26 changes: 1 addition & 25 deletions modules/playground/src/web_workers/animations/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/animations/background_index')
.then(
Expand Down
29 changes: 1 addition & 28 deletions modules/playground/src/web_workers/images/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,34 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'base64-js': '/all/playground/vendor/base64-js',
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
'base64-js': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/images/background_index')
.then(
Expand Down
26 changes: 1 addition & 25 deletions modules/playground/src/web_workers/input/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/input/background_index')
.then(
Expand Down
27 changes: 1 addition & 26 deletions modules/playground/src/web_workers/kitchen_sink/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/kitchen_sink/background_index')
.then(
Expand Down
27 changes: 1 addition & 26 deletions modules/playground/src/web_workers/message_broker/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/message_broker/background_index')
.then(
Expand Down
27 changes: 1 addition & 26 deletions modules/playground/src/web_workers/router/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/router/background_index')
.then(
Expand Down
28 changes: 1 addition & 27 deletions modules/playground/src/web_workers/todo/loader.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,33 +10,7 @@ importScripts(
'../../../vendor/core.js', '../../../vendor/zone.js',
'../../../vendor/long-stack-trace-zone.js', '../../../vendor/system.src.js',
'../../../vendor/Reflect.js');


System.config({
baseURL: '/all',

map: {
'rxjs': '/all/playground/vendor/rxjs',
},
packages: {
'@angular/core': {main: 'index.js', defaultExtension: 'js'},
'@angular/compiler': {main: 'index.js', defaultExtension: 'js'},
'@angular/common': {main: 'index.js', defaultExtension: 'js'},
'@angular/forms': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-browser-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker': {main: 'index.js', defaultExtension: 'js'},
'@angular/platform-webworker-dynamic': {main: 'index.js', defaultExtension: 'js'},
'@angular/router': {main: 'index.js', defaultExtension: 'js'},
'rxjs/ajax': {main: 'index.js', defaultExtension: 'js'},
'rxjs/operators': {main: 'index.js', defaultExtension: 'js'},
'rxjs/testing': {main: 'index.js', defaultExtension: 'js'},
'rxjs/websocket': {main: 'index.js', defaultExtension: 'js'},
'rxjs': {main: 'index.js', defaultExtension: 'js'},
},

defaultJSExtensions: true
});
importScripts('../worker-systemjs-configure.js');

System.import('playground/src/web_workers/todo/background_index')
.then(
Expand Down

0 comments on commit 7b37ff2

Please sign in to comment.