a20fcbbe06
With 63dff9c888c2c89afa7c8aff9747022768b42370, we temporarily disabled the chrome mobile tests on Android because the launched browsers weren't able to load the karma page through the tunnel. The Saucelabs support responded to a ticket that we opened and said that there were issues with those browsers which are now resolved. PR Close #32447
202 lines
10 KiB
JavaScript
202 lines
10 KiB
JavaScript
/**
|
|
* @license
|
|
* Copyright Google Inc. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
|
|
// Unique place to configure the browsers which are used in the different CI jobs in Sauce Labs (SL)
|
|
// and BrowserStack (BS).
|
|
// If the target is set to null, then the browser is not run anywhere during CI.
|
|
// If a category becomes empty (e.g. BS and required), then the corresponding job must be commented
|
|
// out in the CI configuration.
|
|
var CIconfiguration = {
|
|
'Chrome': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}},
|
|
'Firefox': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}},
|
|
// Disabled because using the "beta" channel of Chrome can cause non-deterministic CI results.
|
|
// e.g. a new chrome beta version has been released, but the Saucelabs selenium server does
|
|
// not provide a chromedriver version that is compatible with the new beta.
|
|
'ChromeBeta': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: false}},
|
|
'ChromeDev': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}},
|
|
// FirefoxBeta and FirefoxDev should be target:'BS' or target:'SL', and required:true
|
|
// Currently deactivated due to https://github.com/angular/angular/issues/7560
|
|
'FirefoxBeta': {unitTest: {target: null, required: true}, e2e: {target: null, required: false}},
|
|
'FirefoxDev': {unitTest: {target: null, required: true}, e2e: {target: null, required: true}},
|
|
'IE9': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}},
|
|
'IE10': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}},
|
|
'IE11': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}},
|
|
'Edge': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}},
|
|
'Android4.4': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}},
|
|
'Android5': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}},
|
|
'Android6': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}},
|
|
'Android7': {unitTest: {target: 'SL', required: true}, e2e: {target: null, required: true}},
|
|
'Safari7': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}},
|
|
'Safari8': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}},
|
|
'Safari9': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}},
|
|
'Safari10': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}},
|
|
'iOS7': {unitTest: {target: 'BS', required: true}, e2e: {target: null, required: true}},
|
|
'iOS8': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}},
|
|
'iOS9': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}},
|
|
'iOS10': {unitTest: {target: 'SL', required: false}, e2e: {target: null, required: true}},
|
|
'WindowsPhone': {unitTest: {target: 'BS', required: false}, e2e: {target: null, required: true}}
|
|
};
|
|
|
|
var customLaunchers = {
|
|
'DartiumWithWebPlatform':
|
|
{base: 'Dartium', flags: ['--enable-experimental-web-platform-features']},
|
|
'ChromeNoSandbox': {base: 'Chrome', flags: ['--no-sandbox']},
|
|
'SL_CHROME': {base: 'SauceLabs', browserName: 'chrome', version: '73'},
|
|
'SL_CHROMEBETA': {base: 'SauceLabs', browserName: 'chrome', version: 'beta'},
|
|
'SL_CHROMEDEV': {base: 'SauceLabs', browserName: 'chrome', version: 'dev'},
|
|
'SL_FIREFOX': {base: 'SauceLabs', browserName: 'firefox', version: '65'},
|
|
'SL_FIREFOXBETA':
|
|
{base: 'SauceLabs', platform: 'Windows 10', browserName: 'firefox', version: 'beta'},
|
|
'SL_FIREFOXDEV':
|
|
{base: 'SauceLabs', platform: 'Windows 10', browserName: 'firefox', version: 'dev'},
|
|
'SL_SAFARI7': {base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.9', version: '7.0'},
|
|
'SL_SAFARI8': {base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.10', version: '8.0'},
|
|
'SL_SAFARI9': {base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.11', version: '9.0'},
|
|
'SL_SAFARI10':
|
|
{base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.12', version: '10.0'},
|
|
'SL_IOS7': {base: 'SauceLabs', browserName: 'iphone', platform: 'OS X 10.10', version: '7.1'},
|
|
'SL_IOS8': {base: 'SauceLabs', browserName: 'iphone', platform: 'OS X 10.10', version: '8.4'},
|
|
'SL_IOS9': {base: 'SauceLabs', browserName: 'iphone', platform: 'OS X 10.10', version: '9.3'},
|
|
'SL_IOS10': {base: 'SauceLabs', browserName: 'iphone', platform: 'OS X 10.10', version: '10.0'},
|
|
'SL_IE9':
|
|
{base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 2008', version: '9'},
|
|
'SL_IE10': {
|
|
base: 'SauceLabs',
|
|
browserName: 'internet explorer',
|
|
platform: 'Windows 2012',
|
|
version: '10'
|
|
},
|
|
'SL_IE11':
|
|
{base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 8.1', version: '11'},
|
|
'SL_EDGE': {
|
|
base: 'SauceLabs',
|
|
browserName: 'MicrosoftEdge',
|
|
platform: 'Windows 10',
|
|
version: '14.14393'
|
|
},
|
|
'SL_ANDROID4.1': {base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.1'},
|
|
'SL_ANDROID4.2': {base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.2'},
|
|
'SL_ANDROID4.3': {base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.3'},
|
|
'SL_ANDROID4.4': {base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.4'},
|
|
'SL_ANDROID5': {base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '5.1'},
|
|
'SL_ANDROID6': {
|
|
base: 'SauceLabs',
|
|
browserName: 'Chrome',
|
|
platform: 'Android',
|
|
version: '6.0',
|
|
device: 'Android Emulator'
|
|
},
|
|
'SL_ANDROID7': {
|
|
base: 'SauceLabs',
|
|
browserName: 'Chrome',
|
|
platform: 'Android',
|
|
version: '7.1',
|
|
device: 'Android GoogleAPI Emulator'
|
|
},
|
|
|
|
'BS_CHROME': {base: 'BrowserStack', browser: 'chrome', os: 'OS X', os_version: 'Yosemite'},
|
|
'BS_FIREFOX': {base: 'BrowserStack', browser: 'firefox', os: 'Windows', os_version: '10'},
|
|
'BS_SAFARI7': {base: 'BrowserStack', browser: 'safari', os: 'OS X', os_version: 'Mavericks'},
|
|
'BS_SAFARI8': {base: 'BrowserStack', browser: 'safari', os: 'OS X', os_version: 'Yosemite'},
|
|
'BS_SAFARI9': {base: 'BrowserStack', browser: 'safari', os: 'OS X', os_version: 'El Capitan'},
|
|
'BS_SAFARI10': {base: 'BrowserStack', browser: 'safari', os: 'OS X', os_version: 'Sierra'},
|
|
'BS_IOS7': {base: 'BrowserStack', device: 'iPhone 5S', os: 'ios', os_version: '7.0'},
|
|
'BS_IOS8': {base: 'BrowserStack', device: 'iPhone 6', os: 'ios', os_version: '8.3'},
|
|
'BS_IOS9': {base: 'BrowserStack', device: 'iPhone 6S', os: 'ios', os_version: '9.1'},
|
|
'BS_IOS10': {base: 'BrowserStack', device: 'iPhone SE', os: 'ios', os_version: '10.0'},
|
|
'BS_IE9':
|
|
{base: 'BrowserStack', browser: 'ie', browser_version: '9.0', os: 'Windows', os_version: '7'},
|
|
'BS_IE10': {
|
|
base: 'BrowserStack',
|
|
browser: 'ie',
|
|
browser_version: '10.1',
|
|
os: 'Windows',
|
|
os_version: '8'
|
|
},
|
|
'BS_IE11': {
|
|
base: 'BrowserStack',
|
|
browser: 'ie',
|
|
browser_version: '11.0',
|
|
os: 'Windows',
|
|
os_version: '10'
|
|
},
|
|
'BS_EDGE': {base: 'BrowserStack', browser: 'edge', os: 'Windows', os_version: '10'},
|
|
'BS_WINDOWSPHONE':
|
|
{base: 'BrowserStack', device: 'Nokia Lumia 930', os: 'winphone', os_version: '8.1'},
|
|
'BS_ANDROID7': {base: 'BrowserStack', device: 'Google Pixel', os: 'android', os_version: '7.1'},
|
|
'BS_ANDROID6': {base: 'BrowserStack', device: 'Google Nexus 6', os: 'android', os_version: '6.0'},
|
|
'BS_ANDROID5': {base: 'BrowserStack', device: 'Google Nexus 5', os: 'android', os_version: '5.0'},
|
|
'BS_ANDROID4.4': {base: 'BrowserStack', device: 'HTC One M8', os: 'android', os_version: '4.4'},
|
|
'BS_ANDROID4.3':
|
|
{base: 'BrowserStack', device: 'Samsung Galaxy S4', os: 'android', os_version: '4.3'},
|
|
'BS_ANDROID4.2':
|
|
{base: 'BrowserStack', device: 'Google Nexus 4', os: 'android', os_version: '4.2'},
|
|
'BS_ANDROID4.1':
|
|
{base: 'BrowserStack', device: 'Google Nexus 7', os: 'android', os_version: '4.1'}
|
|
};
|
|
|
|
var sauceAliases = {
|
|
'ALL': Object.keys(customLaunchers).filter(function(item) {
|
|
return customLaunchers[item].base == 'SauceLabs';
|
|
}),
|
|
'DESKTOP': [
|
|
'SL_CHROME', 'SL_FIREFOX', 'SL_IE9', 'SL_IE10', 'SL_IE11', 'SL_EDGE', 'SL_SAFARI7',
|
|
'SL_SAFARI8', 'SL_SAFARI9', 'SL_SAFARI10'
|
|
],
|
|
'MOBILE': [
|
|
'SL_ANDROID4.1', 'SL_ANDROID4.2', 'SL_ANDROID4.3', 'SL_ANDROID4.4', 'SL_ANDROID5',
|
|
'SL_ANDROID6', 'SL_ANDROID7', 'SL_IOS7', 'SL_IOS8', 'SL_IOS9', 'SL_IOS10'
|
|
],
|
|
'ANDROID': [
|
|
'SL_ANDROID4.1', 'SL_ANDROID4.2', 'SL_ANDROID4.3', 'SL_ANDROID4.4', 'SL_ANDROID5',
|
|
'SL_ANDROID6', 'SL_ANDROID7'
|
|
],
|
|
'IE': ['SL_IE9', 'SL_IE10', 'SL_IE11'],
|
|
'IOS': ['SL_IOS7', 'SL_IOS8', 'SL_IOS9', 'SL_IOS10'],
|
|
'SAFARI': ['SL_SAFARI7', 'SL_SAFARI8', 'SL_SAFARI9', 'SL_SAFARI10'],
|
|
'BETA': ['SL_CHROMEBETA', 'SL_FIREFOXBETA'],
|
|
'DEV': ['SL_CHROMEDEV', 'SL_FIREFOXDEV'],
|
|
'CI_REQUIRED': buildConfiguration('unitTest', 'SL', true),
|
|
'CI_OPTIONAL': buildConfiguration('unitTest', 'SL', false)
|
|
};
|
|
|
|
var browserstackAliases = {
|
|
'ALL': Object.keys(customLaunchers).filter(function(item) {
|
|
return customLaunchers[item].base == 'BrowserStack';
|
|
}),
|
|
'DESKTOP': [
|
|
'BS_CHROME', 'BS_FIREFOX', 'BS_IE9', 'BS_IE10', 'BS_IE11', 'BS_EDGE', 'BS_SAFARI7',
|
|
'BS_SAFARI8', 'BS_SAFARI9', 'BS_SAFARI10'
|
|
],
|
|
'MOBILE': [
|
|
'BS_ANDROID4.3', 'BS_ANDROID4.4', 'BS_ANDROID5', 'BS_ANDROID6', 'BS_ANDROID7', 'BS_IOS7',
|
|
'BS_IOS8', 'BS_IOS9', 'BS_IOS10', 'BS_WINDOWSPHONE'
|
|
],
|
|
'ANDROID': ['BS_ANDROID4.3', 'BS_ANDROID4.4', 'BS_ANDROID5', 'BS_ANDROID6', 'BS_ANDROID7'],
|
|
'IE': ['BS_IE9', 'BS_IE10', 'BS_IE11'],
|
|
'IOS': ['BS_IOS7', 'BS_IOS8', 'BS_IOS9', 'BS_IOS10'],
|
|
'SAFARI': ['BS_SAFARI7', 'BS_SAFARI8', 'BS_SAFARI9', 'BS_SAFARI10'],
|
|
'CI_REQUIRED': buildConfiguration('unitTest', 'BS', true),
|
|
'CI_OPTIONAL': buildConfiguration('unitTest', 'BS', false)
|
|
};
|
|
|
|
module.exports = {
|
|
customLaunchers: customLaunchers,
|
|
sauceAliases: sauceAliases,
|
|
browserstackAliases: browserstackAliases
|
|
};
|
|
|
|
function buildConfiguration(type, target, required) {
|
|
return Object.keys(CIconfiguration)
|
|
.filter((item) => {
|
|
var conf = CIconfiguration[item][type];
|
|
return conf.required === required && conf.target === target;
|
|
})
|
|
.map((item) => target + '_' + item.toUpperCase());
|
|
}
|