Add saucelabs browser testing to travis

This commit is contained in:
Slava Bacherikov 2018-01-27 19:54:33 +02:00
parent a605c675e7
commit db8cd4d5ec
3 changed files with 89 additions and 22 deletions

View file

@ -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

View file

@ -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);
}

View file

@ -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",