Skip to content

Instantly share code, notes, and snippets.

Created April 20, 2014 18:51
Show Gist options
  • Save anonymous/11121906 to your computer and use it in GitHub Desktop.
Save anonymous/11121906 to your computer and use it in GitHub Desktop.
'use strict';
var dotenv = require('dotenv');
dotenv.load();
var gulp = require('gulp');
var runSequence = require('run-sequence');
var awspublish = require('gulp-awspublish');
var bump = require('gulp-bump');
var concat = require('gulp-concat');
var minifyCSS = require('gulp-minify-css');
var rename = require('gulp-rename');
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');
var args = require('yargs').argv;
// Compile and minify Sass
gulp.task('styles', function(done) {
var cssDest = './dist/css';
var cssDocDest = './docs/dist/css';
return gulp.src('./sass/purple.scss')
.pipe(sass())
.pipe(gulp.dest(cssDest))
.pipe(gulp.dest(cssDocDest))
.pipe(rename({suffix: '.min'}))
.pipe(minifyCSS())
.pipe(gulp.dest(cssDest))
.pipe(gulp.dest(cssDocDest));
});
// Concatenate and minify Javascript
gulp.task('scripts', function(done) {
var jsDest = './dist/js';
var jsDocDest = './docs/dist/js';
return gulp.src(['./vendor/bootstrap-sass-official/vendor/assets/javascripts/bootstrap/*.js', './js/purple.js'])
.pipe(concat('purple.js'))
.pipe(gulp.dest(jsDest))
.pipe(gulp.dest(jsDocDest))
.pipe(rename({suffix: '.min'}))
.pipe(uglify())
.pipe(gulp.dest(jsDest))
.pipe(gulp.dest(jsDocDest));
});
// Convenience method to bump package version
// `gulp bump [--type=major|minor|patch]` (defaults to patch)
gulp.task('bump', function() {
var type = args.type || '';
return gulp.src(['./bower.json'])
.pipe(bump({type: type}))
.pipe(gulp.dest('./'));
});
// Publish to CDN
gulp.task('publish', function() {
var publisher = awspublish.create({
key: process.env.AWS_KEY,
secret: process.env.AWS_SECRET,
bucket: process.env.S3_BUCKET
});
var version = require('./bower.json').version;
return gulp.src('./dist/**/*')
.pipe(rename(function (path) {
path.dirname = ['purple', version, path.dirname].join('/');
}))
.pipe(publisher.publish())
.pipe(awspublish.reporter());
});
gulp.task('default', ['styles', 'scripts'], function() {});
gulp.task('watch', ['default'], function() {
gulp.watch('./sass/*.scss', ['styles']);
gulp.watch('./js/*.js', ['scripts']);
});
gulp.task('release', function(callback) {
runSequence('bump', 'publish', callback);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment