mirror of
https://github.com/facebook/react.git
synced 2025-11-01 09:12:30 +00:00
NEW sauce-tunnel grunt task
This commit is contained in:
@@ -6,6 +6,7 @@ var browserifyTask = require('./grunt/tasks/browserify');
|
||||
var populistTask = require('./grunt/tasks/populist');
|
||||
var webdriverPhantomJSTask = require('./grunt/tasks/webdriver-phantomjs');
|
||||
var webdriverJasmineTasks = require('./grunt/tasks/webdriver-jasmine');
|
||||
var sauceTunnelTask = require('./grunt/tasks/sauce-tunnel');
|
||||
var npmTask = require('./grunt/tasks/npm');
|
||||
var releaseTasks = require('./grunt/tasks/release');
|
||||
|
||||
@@ -46,6 +47,8 @@ module.exports = function(grunt) {
|
||||
|
||||
grunt.registerMultiTask('populist', populistTask);
|
||||
|
||||
grunt.registerTask('sauce-tunnel', sauceTunnelTask);
|
||||
|
||||
grunt.registerMultiTask('webdriver-jasmine', webdriverJasmineTasks);
|
||||
|
||||
grunt.registerMultiTask('npm', npmTask);
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
var grunt = require('grunt');
|
||||
var SauceTunnel = require('sauce-tunnel');
|
||||
|
||||
module.exports = function(){
|
||||
var task = this;
|
||||
var config = task.data;
|
||||
var shouldStayAliveForever = task.flags.keepalive;
|
||||
|
||||
var SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY;
|
||||
if (!SAUCE_ACCESS_KEY) grunt.fatal('Requires the environment variable SAUCE_ACCESS_KEY to be set');
|
||||
|
||||
var SAUCE_USERNAME = process.env.SAUCE_USERNAME;
|
||||
if (!SAUCE_USERNAME) grunt.fatal('Requires the environment variable SAUCE_USERNAME to be set');
|
||||
|
||||
var taskCompletedSuccessfully = task.async();
|
||||
|
||||
var stunnel = new SauceTunnel(SAUCE_USERNAME, SAUCE_ACCESS_KEY, /*identifier*/null, /*tunneled*/true, /*tunnelTimeout*/10e3);
|
||||
process.on('exit', stunnel.stop.bind(stunnel, function(){}));
|
||||
|
||||
stunnel.on('log:error', grunt.log.error.bind(grunt.log));
|
||||
stunnel.on('log:writeln', grunt.log.writeln.bind(grunt.log));
|
||||
|
||||
stunnel.on('verbose:ok', grunt.verbose.ok.bind(grunt.verbose));
|
||||
stunnel.on('verbose:error', grunt.verbose.error.bind(grunt.verbose));
|
||||
stunnel.on('verbose:debug', grunt.verbose.debug.bind(grunt.verbose));
|
||||
stunnel.on('verbose:writeln', grunt.verbose.writeln.bind(grunt.verbose));
|
||||
|
||||
stunnel.openTunnel(function(isOpen){
|
||||
if (shouldStayAliveForever && isOpen){
|
||||
grunt.verbose.writeln('Keeping the sauce-tunnel open forever because you used the keepalive flag `' + task.name + '`');
|
||||
return;
|
||||
}
|
||||
grunt.verbose.writeln('To keep the sauce-tunnel open forever, use the grunt task `' + task.name + ':keepalive`');
|
||||
taskCompletedSuccessfully(isOpen);
|
||||
});
|
||||
};
|
||||
+2
-1
@@ -60,7 +60,8 @@
|
||||
"jasmine-tapreporter": "~0.2.2",
|
||||
"grunt-contrib-connect": "~0.5.0",
|
||||
"es5-shim": "~2.1.0",
|
||||
"wd": "~0.2.2"
|
||||
"wd": "~0.2.2",
|
||||
"sauce-tunnel": "~1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
|
||||
Reference in New Issue
Block a user