mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-03 04:34:44 +00:00
chore(travis): let's give BrowserStack a try
Switch the build to use BrowserStack instead of SauceLabs. This also adds IE11 to our build.
This commit is contained in:
parent
3fcd228441
commit
ffd075b440
6 changed files with 108 additions and 8 deletions
|
|
@ -7,11 +7,13 @@ env:
|
||||||
- SAUCE_USERNAME=angular-ci
|
- SAUCE_USERNAME=angular-ci
|
||||||
- SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
|
- SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
|
||||||
- SAUCE_CONNECT_READY_FILE=/tmp/sauce-connect-ready
|
- SAUCE_CONNECT_READY_FILE=/tmp/sauce-connect-ready
|
||||||
|
- BROWSER_STACK_USERNAME=VojtaJina
|
||||||
|
- BROWSER_STACK_ACCESS_KEY=HAfHZaypxAc3PEUrUU9a
|
||||||
- LOGS_DIR=/tmp/angular-build/logs
|
- LOGS_DIR=/tmp/angular-build/logs
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- mkdir -p $LOGS_DIR
|
- mkdir -p $LOGS_DIR
|
||||||
- ./lib/sauce/sauce_connect_setup.sh
|
- ./lib/browser-stack/start-tunnel.sh
|
||||||
- npm install -g grunt-cli
|
- npm install -g grunt-cli
|
||||||
- grunt bower
|
- grunt bower
|
||||||
- grunt bower
|
- grunt bower
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,11 @@ module.exports = function(config, specificOptions) {
|
||||||
tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER
|
tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// BrowserStack config for Travis CI
|
||||||
|
browserStack: {
|
||||||
|
startTunnel: false
|
||||||
|
},
|
||||||
|
|
||||||
// For more browsers on Sauce Labs see:
|
// For more browsers on Sauce Labs see:
|
||||||
// https://saucelabs.com/docs/platforms/webdriver
|
// https://saucelabs.com/docs/platforms/webdriver
|
||||||
customLaunchers: {
|
customLaunchers: {
|
||||||
|
|
@ -49,16 +54,59 @@ module.exports = function(config, specificOptions) {
|
||||||
browserName: 'internet explorer',
|
browserName: 'internet explorer',
|
||||||
platform: 'Windows 2012',
|
platform: 'Windows 2012',
|
||||||
version: '10'
|
version: '10'
|
||||||
|
},
|
||||||
|
|
||||||
|
'BS_Chrome': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'chrome',
|
||||||
|
os: 'OS X',
|
||||||
|
os_version: 'Mountain Lion'
|
||||||
|
},
|
||||||
|
'BS_Safari': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'safari',
|
||||||
|
os: 'OS X',
|
||||||
|
os_version: 'Mountain Lion'
|
||||||
|
},
|
||||||
|
'BS_Firefox': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'firefox',
|
||||||
|
os: 'Windows',
|
||||||
|
os_version: '8'
|
||||||
|
},
|
||||||
|
'BS_IE_8': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'ie',
|
||||||
|
browser_version: '8.0',
|
||||||
|
os: 'Windows',
|
||||||
|
os_version: '7'
|
||||||
|
},
|
||||||
|
'BS_IE_9': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'ie',
|
||||||
|
browser_version: '9.0',
|
||||||
|
os: 'Windows',
|
||||||
|
os_version: '7'
|
||||||
|
},
|
||||||
|
'BS_IE_10': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'ie',
|
||||||
|
browser_version: '10.0',
|
||||||
|
os: 'Windows',
|
||||||
|
os_version: '8'
|
||||||
|
},
|
||||||
|
'BS_IE_11': {
|
||||||
|
base: 'BrowserStack',
|
||||||
|
browser: 'ie',
|
||||||
|
browser_version: '11.0',
|
||||||
|
os: 'Windows',
|
||||||
|
os_version: '8.1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
if (process.env.TRAVIS) {
|
if (process.env.TRAVIS) {
|
||||||
// TODO(vojta): remove once SauceLabs supports websockets.
|
|
||||||
// This speeds up the capturing a bit, as browsers don't even try to use websocket.
|
|
||||||
config.transports = ['xhr-polling'];
|
|
||||||
|
|
||||||
// Debug logging into a file, that we print out at the end of the build.
|
// Debug logging into a file, that we print out at the end of the build.
|
||||||
config.loggers.push({
|
config.loggers.push({
|
||||||
type: 'file',
|
type: 'file',
|
||||||
|
|
|
||||||
47
lib/browser-stack/start-tunnel.js
Normal file
47
lib/browser-stack/start-tunnel.js
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
var fs = require('fs');
|
||||||
|
var http = require('http');
|
||||||
|
var BrowserStackTunnel = require('browserstacktunnel-wrapper');
|
||||||
|
|
||||||
|
var HOSTNAME = 'localhost';
|
||||||
|
var PORTS = [9090, 9876];
|
||||||
|
var ACCESS_KEY = process.env.BROWSER_STACK_ACCESS_KEY;
|
||||||
|
var READY_FILE = process.env.SAUCE_CONNECT_READY_FILE;
|
||||||
|
|
||||||
|
// We need to start fake servers, otherwise the tunnel does not start.
|
||||||
|
var fakeServers = [];
|
||||||
|
var hosts = [];
|
||||||
|
|
||||||
|
PORTS.forEach(function(port) {
|
||||||
|
fakeServers.push(http.createServer(function() {}).listen(port));
|
||||||
|
hosts.push({
|
||||||
|
name: HOSTNAME,
|
||||||
|
port: port,
|
||||||
|
sslFlag: 0
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
var tunnel = new BrowserStackTunnel({
|
||||||
|
key: ACCESS_KEY,
|
||||||
|
hosts: hosts
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
tunnel.start(function(error) {
|
||||||
|
console.log('** callback **')
|
||||||
|
if (error) {
|
||||||
|
console.error('Can not establish the tunnel', error);
|
||||||
|
} else {
|
||||||
|
console.log('Tunnel established.');
|
||||||
|
fakeServers.forEach(function(server) {
|
||||||
|
server.close();
|
||||||
|
});
|
||||||
|
|
||||||
|
if (READY_FILE) {
|
||||||
|
fs.writeFile(READY_FILE, '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tunnel.on('error', function(error) {
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
1
lib/browser-stack/start-tunnel.sh
Executable file
1
lib/browser-stack/start-tunnel.sh
Executable file
|
|
@ -0,0 +1 @@
|
||||||
|
node ./lib/browser-stack/start-tunnel.js &
|
||||||
|
|
@ -37,7 +37,9 @@
|
||||||
"promises-aplus-tests": "~1.3.2",
|
"promises-aplus-tests": "~1.3.2",
|
||||||
"grunt-shell": "~0.4.0",
|
"grunt-shell": "~0.4.0",
|
||||||
"semver": "~2.1.0",
|
"semver": "~2.1.0",
|
||||||
"lodash": "~2.1.0"
|
"lodash": "~2.1.0",
|
||||||
|
"karma-browserstack-launcher": "~0.0.4",
|
||||||
|
"browserstacktunnel-wrapper": "~1.1.1"
|
||||||
},
|
},
|
||||||
"licenses": [
|
"licenses": [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,5 +5,5 @@ set -e
|
||||||
export SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev`
|
export SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev`
|
||||||
|
|
||||||
grunt parallel:travis --reporters dots \
|
grunt parallel:travis --reporters dots \
|
||||||
--browsers SL_Chrome,SL_Safari,SL_Firefox,SL_IE_8,SL_IE_9,SL_IE_10 \
|
--browsers BS_Chrome,BS_Safari,BS_Firefox,BS_IE_8,BS_IE_9,BS_IE_10,BS_IE_11 \
|
||||||
--e2e-browsers SL_Chrome
|
--e2e-browsers BS_Chrome
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue