Build: Refactor testswarm Grunt task options

Add a possibility to specify the project name. Infer browserSets & timeout
out of it instead of defining it in the Jenkins configuration.
This commit is contained in:
Michał Gołębiowski 2014-03-16 04:09:12 +01:00
parent c29e9c4db1
commit aa951a3184

View File

@ -2,13 +2,15 @@ module.exports = function( grunt ) {
"use strict";
grunt.registerTask( "testswarm", function( commit, configFile, browserSets, timeout ) {
var jobName,
grunt.registerTask( "testswarm", function( commit, configFile, projectName ) {
var jobName, config, tests,
testswarm = require( "testswarm" ),
runs = {},
done = this.async(),
pull = /PR-(\d+)/.exec( commit ),
config = grunt.file.readJSON( configFile ).jquery,
pull = /PR-(\d+)/.exec( commit );
projectName = projectName || "jquery";
config = grunt.file.readJSON( configFile )[ projectName ];
tests = grunt.config([ this.name, "tests" ]);
if ( pull ) {
@ -36,8 +38,10 @@ module.exports = function( grunt ) {
name: jobName,
runs: runs,
runMax: config.runMax,
browserSets: browserSets || [ "popular-no-old-ie", "ios" ],
timeout: timeout || 1000 * 60 * 30
browserSets: projectName === "jquery" ?
[ "popular-no-old-ie", "ios" ] :
"weekly-no-old-ie",
timeout: projectName === "jquery" ? 1000 * 60 * 30 : 1000 * 60 * 60 * 4
}, function( err, passed ) {
if ( err ) {
grunt.log.error( err );