2013-08-16 13:48:00 +00:00
|
|
|
module.exports = function( grunt ) {
|
|
|
|
|
|
|
|
"use strict";
|
|
|
|
|
2014-03-16 03:09:12 +00:00
|
|
|
grunt.registerTask( "testswarm", function( commit, configFile, projectName ) {
|
|
|
|
var jobName, config, tests,
|
2013-08-16 13:48:00 +00:00
|
|
|
testswarm = require( "testswarm" ),
|
|
|
|
runs = {},
|
|
|
|
done = this.async(),
|
2014-03-16 03:09:12 +00:00
|
|
|
pull = /PR-(\d+)/.exec( commit );
|
|
|
|
|
|
|
|
projectName = projectName || "jquery";
|
|
|
|
config = grunt.file.readJSON( configFile )[ projectName ];
|
|
|
|
tests = grunt.config([ this.name, "tests" ]);
|
2013-08-16 13:48:00 +00:00
|
|
|
|
|
|
|
if ( pull ) {
|
2013-10-02 12:58:15 +00:00
|
|
|
jobName = "Pull <a href='https://github.com/jquery/jquery/pull/" +
|
2013-08-16 13:48:00 +00:00
|
|
|
pull[ 1 ] + "'>#" + pull[ 1 ] + "</a>";
|
|
|
|
} else {
|
2013-10-02 12:58:15 +00:00
|
|
|
jobName = "Commit <a href='https://github.com/jquery/jquery/commit/" +
|
2013-08-16 13:48:00 +00:00
|
|
|
commit + "'>" + commit.substr( 0, 10 ) + "</a>";
|
|
|
|
}
|
|
|
|
|
|
|
|
tests.forEach(function( test ) {
|
|
|
|
runs[ test ] = config.testUrl + commit + "/test/index.html?module=" + test;
|
|
|
|
});
|
|
|
|
|
2014-03-12 10:08:16 +00:00
|
|
|
testswarm.createClient({
|
|
|
|
url: config.swarmUrl
|
2013-08-16 13:48:00 +00:00
|
|
|
} )
|
|
|
|
.addReporter( testswarm.reporters.cli )
|
|
|
|
.auth( {
|
|
|
|
id: config.authUsername,
|
|
|
|
token: config.authToken
|
|
|
|
})
|
|
|
|
.addjob(
|
|
|
|
{
|
|
|
|
name: jobName,
|
|
|
|
runs: runs,
|
|
|
|
runMax: config.runMax,
|
2014-03-18 10:55:06 +00:00
|
|
|
browserSets: projectName === "jqueryweekly" ?
|
|
|
|
"weekly" :
|
|
|
|
[ "popular", "ios" ],
|
|
|
|
timeout: projectName === "jqueryweekly" ? 1000 * 60 * 60 : 1000 * 60 * 30
|
2013-08-16 13:48:00 +00:00
|
|
|
}, function( err, passed ) {
|
|
|
|
if ( err ) {
|
|
|
|
grunt.log.error( err );
|
|
|
|
}
|
|
|
|
done( passed );
|
|
|
|
}
|
|
|
|
);
|
|
|
|
});
|
|
|
|
};
|