Skip to content

Instantly share code, notes, and snippets.

@armandomiani
Created November 4, 2015 11:42
Show Gist options
  • Save armandomiani/40598abafff39953fd28 to your computer and use it in GitHub Desktop.
Save armandomiani/40598abafff39953fd28 to your computer and use it in GitHub Desktop.
gulpfile example
var gulp = require('gulp');
var replace = require('gulp-replace');
var shell = require('gulp-shell');
var argv = require('yargs').argv;
var yaml = require('js-yaml');
var fs = require('fs');
var run = require('gulp-run');
var runSequence = require('gulp-run-sequence');
var currentEnvironment = '';
gulp.task('default', function () {
console.log('teste helloo');
});
gulp.task('deploy', function (callback) {
runSequence('prepare', 'deployToGae', callback);
});
gulp.task('deploy-and-test', function (callback) {
runSequence('prepare', 'deployToGae', 'setDefaultVersion', 'runTests', callback);
});
gulp.task('test', function (callback) {
runSequence('prepare', 'runTests', callback);
});
gulp.task('prepare', function() {
var environment = null;
environment = (argv.staging ? 'staging' : null);
environment = (argv.production ? 'prod' : environment);
currentEnvironment = environment;
if ((environment != null) && (environment == 'prod' || environment == 'staging'))
{
var settings = yaml.safeLoad(fs.readFileSync('./settings/' + environment + '.yaml'));
console.log('Deploying to Environment: ' + environment.toUpperCase());
gulp.src('./settings/app.yaml')
.pipe(replace('{{application_name}}', settings.gae_application_name))
.pipe(replace('{{version}}', settings.gae_application_version))
.pipe(gulp.dest("."))
}
else
console.log('No environment selected or invalid.');
});
gulp.task('deployToGae', shell.task(['appcfg.py update .']));
gulp.task('runTests', function () {
var cmdLine = 'jasmine-node spec/' + currentEnvironment + '/deploy.spec.js';
run(cmdLine).exec();
});
gulp.task('setDefaultVersion', shell.task(['appcfg.py set_default_version .']));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment