99 lines
3.8 KiB
JavaScript
99 lines
3.8 KiB
JavaScript
'use strict';
|
|
|
|
module.exports = function (grunt) {
|
|
var browsers = [
|
|
{ browserName: 'firefox', version: '19', platform: 'XP' },
|
|
{ browserName: 'firefox', platform: 'linux' },
|
|
{ browserName: 'firefox', platform: 'OS X 10.10' },
|
|
{ browserName: 'chrome', platform: 'linux' },
|
|
{ browserName: 'chrome', platform: 'OS X 10.9' },
|
|
{ browserName: 'chrome', platform: 'XP' },
|
|
{ browserName: 'internet explorer', platform: 'Windows 8.1', version: '11' },
|
|
{ browserName: 'internet explorer', platform: 'WIN8', version: '10' },
|
|
{ browserName: 'internet explorer', platform: 'VISTA', version: '9' },
|
|
{ browserName: 'safari', platform: 'OS X 10.6' },
|
|
{ browserName: 'safari', platform: 'OS X 10.8' },
|
|
{ browserName: 'safari', platform: 'OS X 10.9' },
|
|
{ browserName: 'safari', platform: 'OS X 10.10' },
|
|
{ browserName: 'iphone', platform: 'OS X 10.9', version: '7.1' },
|
|
{ browserName: 'android', platform: 'Linux', version: '4.4' },
|
|
];
|
|
var extraBrowsers = [
|
|
{ browserName: 'firefox', platform: 'linux', version: '30' },
|
|
{ browserName: 'firefox', platform: 'linux', version: '25' },
|
|
{ browserName: 'iphone', platform: 'OS X 10.8', version: '6.1' },
|
|
{ browserName: 'iphone', platform: 'OS X 10.8', version: '5.1' },
|
|
{ browserName: 'android', platform: 'Linux', version: '4.2' },
|
|
// XXX haven't investigated these:
|
|
// { browserName: 'opera', platform: 'Windows 7', version: '12' },
|
|
// { browserName: 'opera', platform: 'Windows 2008', version: '12' }
|
|
// { browserName: 'iphone', platform: 'OS X 10.6', version: '4.3' },
|
|
// { browserName: 'android', platform: 'Linux', version: '4.0' },
|
|
];
|
|
if (grunt.option('extra')) {
|
|
browsers = browsers.concat(extraBrowsers);
|
|
}
|
|
grunt.initConfig({
|
|
connect: {
|
|
server: {
|
|
options: {
|
|
base: '',
|
|
port: 9999,
|
|
useAvailablePort: true
|
|
}
|
|
}
|
|
},
|
|
'saucelabs-mocha': {
|
|
all: {
|
|
options: {
|
|
urls: (function () {
|
|
var urls = ['http://localhost:9999/test/'];
|
|
if (grunt.option('extra')) {
|
|
urls.push('http://localhost:9999/test-sham/');
|
|
}
|
|
return urls;
|
|
}()),
|
|
// tunnelTimeout: 5,
|
|
build: process.env.TRAVIS_BUILD_NUMBER,
|
|
tunneled: !process.env.SAUCE_HAS_TUNNEL,
|
|
identifier: process.env.TRAVIS_JOB_NUMBER,
|
|
sauceConfig: {
|
|
'tunnel-identifier': process.env.TRAVIS_JOB_NUMBER
|
|
},
|
|
// concurrency: 3,
|
|
browsers: browsers,
|
|
testname: (function () {
|
|
var testname = 'mocha';
|
|
if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
|
|
testname += ' (PR ' + process.env.TRAVIS_PULL_REQUEST + ')';
|
|
}
|
|
if (process.env.TRAVIS_BRANCH && process.env.TRAVIS_BRANCH !== 'false') {
|
|
testname += ' (branch ' + process.env.TRAVIS_BRANCH + ')';
|
|
}
|
|
return testname;
|
|
}()),
|
|
tags: (function () {
|
|
var tags = [];
|
|
if (process.env.TRAVIS_PULL_REQUEST && process.env.TRAVIS_PULL_REQUEST !== 'false') {
|
|
tags.push('PR-' + process.env.TRAVIS_PULL_REQUEST);
|
|
}
|
|
if (process.env.TRAVIS_BRANCH && process.env.TRAVIS_BRANCH !== 'false') {
|
|
tags.push(process.env.TRAVIS_BRANCH);
|
|
}
|
|
return tags;
|
|
}())
|
|
}
|
|
}
|
|
},
|
|
watch: {}
|
|
});
|
|
// Loading dependencies
|
|
for (var key in grunt.file.readJSON('package.json').devDependencies) {
|
|
if (key !== 'grunt' && key.indexOf('grunt') === 0) {
|
|
grunt.loadNpmTasks(key);
|
|
}
|
|
}
|
|
grunt.registerTask('dev', ['connect', 'watch']);
|
|
grunt.registerTask('sauce', ['connect', 'saucelabs-mocha']);
|
|
};
|