From ffd39c0bd990ea6d26b424efb52900e6288c8d4b Mon Sep 17 00:00:00 2001 From: Na Li Date: Mon, 4 May 2020 10:20:47 -0700 Subject: [PATCH 1/2] Test nightly build. --- scripts/run-build.sh | 2 +- tfjs-core/karma.conf.js | 7 ++++--- tfjs-core/scripts/test-ci.sh | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/run-build.sh b/scripts/run-build.sh index 8c15e147117..b4b08c28058 100755 --- a/scripts/run-build.sh +++ b/scripts/run-build.sh @@ -19,5 +19,5 @@ set -e DIR=$1 if [[ -f "$DIR/run-ci" || "$NIGHTLY" = true ]]; then gcloud builds submit . --config=$DIR/cloudbuild.yml \ - --substitutions _NIGHTLY=$NIGHTLY + --substitutions _NIGHTLY=true fi diff --git a/tfjs-core/karma.conf.js b/tfjs-core/karma.conf.js index e000cc4be90..2b99108c359 100644 --- a/tfjs-core/karma.conf.js +++ b/tfjs-core/karma.conf.js @@ -99,11 +99,12 @@ module.exports = function(config) { username: process.env.BROWSERSTACK_USERNAME, accessKey: process.env.BROWSERSTACK_KEY }, - captureTimeout: 6e5, + captureTimeout: 3e5, reportSlowerThan: 500, browserNoActivityTimeout: 3e5, browserDisconnectTimeout: 3e5, - browserDisconnectTolerance: 3, + browserDisconnectTolerance: 0, + browserSocketTimeout: 1.2e5, customLaunchers: { // For browserstack configs see: // https://www.browserstack.com/automate/node @@ -131,7 +132,7 @@ module.exports = function(config) { bs_ios_11: { base: 'BrowserStack', device: 'iPhone X', - os: 'iOS', + os: 'ios', os_version: '11.0', real_mobile: true }, diff --git a/tfjs-core/scripts/test-ci.sh b/tfjs-core/scripts/test-ci.sh index 90cdf65970d..077b21f789e 100755 --- a/tfjs-core/scripts/test-ci.sh +++ b/tfjs-core/scripts/test-ci.sh @@ -24,6 +24,8 @@ then # Run the first karma separately so it can download the BrowserStack binary # without conflicting with others. yarn run-browserstack --browsers=bs_chrome_mac + echo "Test iPhone X." + yarn run-browserstack --browsers=bs_ios_11 --flags '{"HAS_WEBGL": false}' --testEnv cpu # TODO(lina128): Add back bs_ios_11 once browserstack issue is resolved. yarn run-browserstack --browsers=bs_firefox_mac,bs_safari_mac,bs_android_9 --flags '{"HAS_WEBGL": false}' --testEnv cpu From fc5ac469ac43e8ecc62dc5b838695ca818650be5 Mon Sep 17 00:00:00 2001 From: Na Li Date: Mon, 4 May 2020 12:11:20 -0700 Subject: [PATCH 2/2] Add bs-local.com --- scripts/run-build.sh | 2 +- tfjs-backend-webgl/karma.conf.js | 49 +++++++++++++++++++-------- tfjs-backend-webgl/scripts/test-ci.sh | 3 +- tfjs-core/karma.conf.js | 4 +-- tfjs-core/scripts/test-ci.sh | 5 +-- 5 files changed, 39 insertions(+), 24 deletions(-) diff --git a/scripts/run-build.sh b/scripts/run-build.sh index b4b08c28058..8c15e147117 100755 --- a/scripts/run-build.sh +++ b/scripts/run-build.sh @@ -19,5 +19,5 @@ set -e DIR=$1 if [[ -f "$DIR/run-ci" || "$NIGHTLY" = true ]]; then gcloud builds submit . --config=$DIR/cloudbuild.yml \ - --substitutions _NIGHTLY=true + --substitutions _NIGHTLY=$NIGHTLY fi diff --git a/tfjs-backend-webgl/karma.conf.js b/tfjs-backend-webgl/karma.conf.js index 573d0ac4c8f..447571c98c8 100644 --- a/tfjs-backend-webgl/karma.conf.js +++ b/tfjs-backend-webgl/karma.conf.js @@ -40,6 +40,24 @@ const karmaTypescriptConfig = { } }; +const devConfig = { + frameworks: ['jasmine', 'karma-typescript'], + files: [ + {pattern: './node_modules/@babel/polyfill/dist/polyfill.js'}, + 'src/setup_test.ts', + {pattern: 'src/**/*.ts'}, + ], + preprocessors: {'**/*.ts': ['karma-typescript']}, + karmaTypescriptConfig, + reporters: ['dots', 'karma-typescript'] +}; + +const browserstackConfig = { + ...devConfig, + hostname: 'bs-local.com', + singleRun: true +}; + module.exports = function(config) { const args = []; if (config.testEnv) { @@ -51,34 +69,34 @@ module.exports = function(config) { if (config.flags) { args.push('--flags', config.flags); } + + let extraConfig = null; + + if (config.browserstack) { + extraConfig = browserstackConfig; + } else { + extraConfig = devConfig; + } + let exclude = []; if (config.excludeTest != null) { exclude.push(config.excludeTest); } config.set({ - frameworks: ['jasmine', 'karma-typescript'], - files: [ - {pattern: './node_modules/@babel/polyfill/dist/polyfill.js'}, - 'src/setup_test.ts', - {pattern: 'src/**/*.ts'}, - ], - preprocessors: {'**/*.ts': ['karma-typescript']}, - karmaTypescriptConfig, - reporters: ['dots', 'karma-typescript'], + ...extraConfig, exclude, - colors: true, - autoWatch: false, browsers: ['Chrome'], - singleRun: true, - client: {jasmine: {random: false}, args: args}, browserStack: { username: process.env.BROWSERSTACK_USERNAME, accessKey: process.env.BROWSERSTACK_KEY }, - captureTimeout: 120000, + captureTimeout: 3e5, reportSlowerThan: 500, - browserNoActivityTimeout: 240000, + browserNoActivityTimeout: 3e5, + browserDisconnectTimeout: 3e5, + browserDisconnectTolerance: 0, + browserSocketTimeout: 1.2e5, customLaunchers: { // For browserstack configs see: // https://www.browserstack.com/automate/node @@ -127,5 +145,6 @@ module.exports = function(config) { os_version: '10' }, }, + client: {jasmine: {random: false}, args: args} }) } diff --git a/tfjs-backend-webgl/scripts/test-ci.sh b/tfjs-backend-webgl/scripts/test-ci.sh index 3e49f783f7a..17bd9025334 100755 --- a/tfjs-backend-webgl/scripts/test-ci.sh +++ b/tfjs-backend-webgl/scripts/test-ci.sh @@ -20,8 +20,7 @@ if [ "$NIGHTLY" = true ] then # Run the first karma separately so it can download the BrowserStack binary # without conflicting with others. - # TODO(lina128): Add back bs_ios_11 once browserstack issue is resolved. - yarn run-browserstack --browsers=bs_safari_mac --testEnv webgl1 --flags '{"WEBGL_CPU_FORWARD": false, "WEBGL_SIZE_UPLOAD_UNIFORM": 0}' + yarn run-browserstack --browsers=bs_safari_mac,bs_ios_11 --testEnv webgl1 --flags '{"WEBGL_CPU_FORWARD": false, "WEBGL_SIZE_UPLOAD_UNIFORM": 0}' # Run the rest of the karma tests in parallel. These runs will reuse the # already downloaded binary. diff --git a/tfjs-core/karma.conf.js b/tfjs-core/karma.conf.js index 2b99108c359..91d5a6ab78e 100644 --- a/tfjs-core/karma.conf.js +++ b/tfjs-core/karma.conf.js @@ -43,12 +43,12 @@ const devConfig = { ], preprocessors: {'**/*.ts': ['karma-typescript']}, karmaTypescriptConfig, - reporters: ['dots', 'karma-typescript'], + reporters: ['dots', 'karma-typescript'] }; const browserstackConfig = { ...devConfig, - reporters: ['dots', 'karma-typescript'], + hostname: 'bs-local.com', singleRun: true }; diff --git a/tfjs-core/scripts/test-ci.sh b/tfjs-core/scripts/test-ci.sh index 077b21f789e..0bd570c3c62 100755 --- a/tfjs-core/scripts/test-ci.sh +++ b/tfjs-core/scripts/test-ci.sh @@ -24,11 +24,8 @@ then # Run the first karma separately so it can download the BrowserStack binary # without conflicting with others. yarn run-browserstack --browsers=bs_chrome_mac - echo "Test iPhone X." - yarn run-browserstack --browsers=bs_ios_11 --flags '{"HAS_WEBGL": false}' --testEnv cpu - # TODO(lina128): Add back bs_ios_11 once browserstack issue is resolved. - yarn run-browserstack --browsers=bs_firefox_mac,bs_safari_mac,bs_android_9 --flags '{"HAS_WEBGL": false}' --testEnv cpu + yarn run-browserstack --browsers=bs_firefox_mac,bs_safari_mac,bs_ios_11,bs_android_9 --flags '{"HAS_WEBGL": false}' --testEnv cpu ### The next section tests TF.js in a webworker using the CPU backend. echo "Start webworker test."