From db8cd4d5eccc726923e5ab6c69ed07095aecd431 Mon Sep 17 00:00:00 2001 From: Slava Bacherikov Date: Sat, 27 Jan 2018 19:54:33 +0200 Subject: [PATCH] Add saucelabs browser testing to travis --- .travis.yml | 23 ++++++-------- karma.conf.js | 85 ++++++++++++++++++++++++++++++++++++++++++++++----- package.json | 3 +- 3 files changed, 89 insertions(+), 22 deletions(-) diff --git a/.travis.yml b/.travis.yml index 595a08a..8526a15 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,25 +1,22 @@ sudo: false language: node_js node_js: - - "5" - - "6" - - "7" - - "8" - - "node" - +- '6' +env: + matrix: + - SAUCE=true + global: + secure: fj2CF7TO1mpoM/Ft1wSIpGapoA+hqXLpUVe2iZXsGgeKVONAyh5k+s1cd9h/xGlnOmW5HyyN1M8YiTTWEjdT1yLwLYiL+cUdcW+BZBZWLN84lbjQimmDvB84ukMAdBeGz6XgSdmMYLFjZoh89qC3D0lukLZV0RdJOR8SmntwuRg= addons: chrome: stable firefox: latest - script: - - npm test - - npm run lint - - npm run browser-test - +- npm test +- npm run browser-test +- npm run lint git: depth: 1 submodules: false - cache: directories: - - "node_modules" + - node_modules diff --git a/karma.conf.js b/karma.conf.js index cba3215..815f37e 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,4 +1,56 @@ module.exports = function(config) { + + var customLaunchers = { + sl_ie_9: { + base: "SauceLabs", + browserName: "internet explorer", + platform: "Windows 7", + version: "9" + }, + sl_safari_7: { + base: "SauceLabs", + browserName: "safari", + platform: "OS X 10.9", + version: "7.0" + }, + sl_ios_safari: { + base: 'SauceLabs', + browserName: 'iphone', + platform: 'OS X 10.9', + version: '8.1' + }, + sl_android: { + base: "SauceLabs", + browserName: 'Browser', + patform: 'Android', + version: '4.4', + deviceName: 'Android Emulator', + deviceOrientation: 'portrait' + }, + sl_chrome_41: { + base: "SauceLabs", + browserName: 'chrome', + platform: 'Linux', + version: '41.0' + }, + sl_firefox_8: { + base: "SauceLabs", + browserName: 'firefox', + platform: 'Linux', + version: '8.0' + }, + sl_edge_13: { + base: "SauceLabs", + browserName: 'MicrosoftEdge', + platform: 'Windows 10', + version: '13.10586' + }, + ChromeHeadlessTravis: { + base: "ChromeHeadless", + flags: ['--no-sandbox'] + } + }; + var configuration = { frameworks: ["jasmine"], files: [ @@ -28,19 +80,22 @@ module.exports = function(config) { mime: { 'text/x-typescript': ['ts', 'tsx'] }, - reporters: ["progress"], - browsers: ["ChromeHeadless", "FirefoxHeadless"], - customLaunchers: { - ChromeHeadlessTravis: { - base: "ChromeHeadless", - flags: ['--no-sandbox'] - } + sauceLabs: { + testName: "Bios-pw Unit tests", + retryLimit: 2, + recordVideo: false, + recordScreenshots: false }, - concurrency: 8, + reporters: ["progress", "saucelabs"], + browsers: ["ChromeHeadless", "FirefoxHeadless"], + customLaunchers: customLaunchers, + singleRun: true, + concurrency: 2, plugins: [ 'karma-jasmine', 'karma-chrome-launcher', 'karma-firefox-launcher', + 'karma-sauce-launcher', 'karma-webpack', 'karma-sourcemap-loader' ] @@ -50,5 +105,19 @@ module.exports = function(config) { configuration.browsers = ['ChromeHeadlessTravis', 'FirefoxHeadless']; } + if (process.env.SAUCE) { + var currentBrowsers = configuration.browsers; + var sauceBrowsers = Object.keys(customLaunchers).filter((s) => s.startsWith('sl_')); + configuration.browsers = currentBrowsers.concat(sauceBrowsers); + + if (process.env.TRAVIS) { + var buildNumber = process.env.TRAVIS_BUILD_NUMBER; + var travisBuildId = process.env.TRAVIS_BUILD_ID; + var buildId = `TRAVIS ${buildNumber} (${travisBuildId})`; + configuration.sauceLabs.build = buildId; + configuration.sauceLabs.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER; + } + } + config.set(configuration); } diff --git a/package.json b/package.json index 57c7313..f2e5c81 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "karma-jasmine": "^1.1.1", "karma-chrome-launcher": "^2.2.0", "karma-firefox-launcher": "^1.1.0", + "karma-sauce-launcher": "^1.2.0", "karma-webpack": "^2.0.9", "karma-sourcemap-loader": "^0.3.7", "ts-loader": "^3.3.1" @@ -26,7 +27,7 @@ "scripts": { "test": "gulp test", "lint": "gulp lint", - "browser-test": "karma start --single-run" + "browser-test": "karma start" }, "repository": { "type": "git",