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.

(cherry-picked from aa951a3184)
This commit is contained in:
Michał Gołębiowski 2014-03-16 04:09:12 +01:00
parent 045aeda1e3
commit c84835633a

View File

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