diff options
Diffstat (limited to 'build/tasks/testswarm.js')
-rw-r--r-- | build/tasks/testswarm.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/build/tasks/testswarm.js b/build/tasks/testswarm.js new file mode 100644 index 000000000..92b696e27 --- /dev/null +++ b/build/tasks/testswarm.js @@ -0,0 +1,50 @@ +module.exports = function( grunt ) { + + "use strict"; + + grunt.registerTask( "testswarm", function( commit, configFile ) { + var jobName, + testswarm = require( "testswarm" ), + runs = {}, + done = this.async(), + pull = /PR-(\d+)/.exec( commit ), + config = grunt.file.readJSON( configFile ).jquery, + tests = grunt.config([ this.name, "tests" ]); + + if ( pull ) { + jobName = "jQuery pull <a href='https://github.com/jquery/jquery/pull/" + + pull[ 1 ] + "'>#" + pull[ 1 ] + "</a>"; + } else { + jobName = "jQuery commit #<a href='https://github.com/jquery/jquery/commit/" + + commit + "'>" + commit.substr( 0, 10 ) + "</a>"; + } + + tests.forEach(function( test ) { + runs[ test ] = config.testUrl + commit + "/test/index.html?module=" + test; + }); + + testswarm.createClient( { + url: config.swarmUrl, + pollInterval: 10000, + timeout: 1000 * 60 * 30 + } ) + .addReporter( testswarm.reporters.cli ) + .auth( { + id: config.authUsername, + token: config.authToken + }) + .addjob( + { + name: jobName, + runs: runs, + runMax: config.runMax, + browserSets: config.browserSets + }, function( err, passed ) { + if ( err ) { + grunt.log.error( err ); + } + done( passed ); + } + ); + }); +}; |