Last active
July 2, 2017 20:10
-
-
Save cyk/5494cfce480c782a84970151aed79ff9 to your computer and use it in GitHub Desktop.
Testem BrowserStack Launcher Travis CI
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// .travis/browserstack.js | |
#!/usr/bin/env node | |
const browserstack = require('browserstack'); | |
let WORKER_ID = 0; | |
let username = process.env.BROWSERSTACK_USER; | |
let password = process.env.BROWSERSTACK_ACCESS_KEY; | |
// The exports from BrowserStack Travis addon we're relying on adds | |
// a suffix (https://git.io/vQW21#L171), removing it here to log in | |
username = username.split('-travis')[0]; | |
let client = browserstack.createClient({ username, password }); | |
'SIGINT SIGTERM SIGHUP'.split(' ').forEach((evt) => { | |
process.on(evt, () => { | |
console.log(`Closed BrowserStack Worker process ${evt}`); | |
if (client !== null) { | |
client.terminateWorker(WORKER_ID, () => process.exit()); | |
} | |
}); | |
}); | |
let name = process.env.TRAVIS_JOB_NUMBER || null; | |
let build = process.env.TRAVIS_BUILD_NUMBER || null; | |
let project = process.env.TRAVIS_REPO_SLUG || null; | |
let settings = { | |
os: process.argv[2], | |
os_version: process.argv[3], | |
browser: process.argv[4], | |
browser_version: process.argv[5], | |
device: process.argv[6], | |
url: process.argv[7], | |
name, | |
build, | |
project | |
}; | |
for (var i in settings) { | |
if (settings[i] === null || settings[i] === '' || settings[i] === 'nil') { | |
delete settings[i]; | |
} | |
} | |
console.log(settings); | |
client.createWorker(settings, (error, worker) => { | |
if (error) console.log(error); | |
WORKER_ID = worker.id | |
}); | |
setTimeout(() => client.terminateWorker(WORKER_ID), 600000); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// testem.js | |
/* eslint-env node */ | |
module.exports = { | |
test_page: 'tests/index.html?hidepassed', | |
disable_watching: true, | |
browser_start_timeout: 600, | |
launch_in_ci: [ | |
'BS_Edge', | |
'BS_Firefox', | |
'BS_IE', | |
'BS_Safari' | |
], | |
launch_in_dev: [ | |
'PhantomJS', | |
'Chrome' | |
], | |
launchers: { | |
'BS_Edge': { | |
'exe': '.travis/browserstack.js', | |
'args': ['WINDOWS', '10', 'Edge', 'latest', ''], | |
'protocol': 'browser' | |
}, | |
'BS_Firefox': { | |
'exe': '.travis/browserstack.js', | |
'args': ['WINDOWS', '10', 'Firefox', 'latest', ''], | |
'protocol': 'browser' | |
}, | |
'BS_IE': { | |
'exe': '.travis/browserstack.js', | |
'args': ['WINDOWS', '10', 'IE', 'latest', ''], | |
'protocol': 'browser' | |
}, | |
'BS_Safari': { | |
'exe': '.travis/browserstack.js', | |
'args': ['OS X', 'Sierra', 'Safari', 'latest', ''], | |
'protocol': 'browser' | |
} | |
}, | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment