Publishing to AWS
This commit is contained in:
88
gulpfile.js
88
gulpfile.js
@ -16,7 +16,10 @@ var fs = require("fs"),
|
||||
prefix = require("gulp-autoprefixer"),
|
||||
svgstore = require("gulp-svgstore"),
|
||||
svgmin = require("gulp-svgmin"),
|
||||
hogan = require("gulp-hogan-compile");
|
||||
hogan = require("gulp-hogan-compile"),
|
||||
rename = require("gulp-rename"),
|
||||
s3 = require("gulp-s3"),
|
||||
gzip = require("gulp-gzip");
|
||||
|
||||
var root = __dirname,
|
||||
paths = {
|
||||
@ -29,11 +32,7 @@ var root = __dirname,
|
||||
sprite: path.join(root, "src/sprite/*.svg")
|
||||
},
|
||||
// Output paths
|
||||
output: {
|
||||
js: path.join(root, "dist/js/"),
|
||||
css: path.join(root, "dist/css/"),
|
||||
sprite: path.join(root, "dist/")
|
||||
}
|
||||
output: path.join(root, "dist/")
|
||||
},
|
||||
docs: {
|
||||
// Source paths
|
||||
@ -43,10 +42,7 @@ var root = __dirname,
|
||||
templates: path.join(root, "docs/src/templates/*.html")
|
||||
},
|
||||
// Output paths
|
||||
output: {
|
||||
js: path.join(root, "docs/dist/js/"),
|
||||
css: path.join(root, "docs/dist/css/")
|
||||
}
|
||||
output: path.join(root, "docs/dist/")
|
||||
}
|
||||
},
|
||||
|
||||
@ -58,7 +54,8 @@ tasks = {
|
||||
},
|
||||
|
||||
// Fetch bundles from JSON
|
||||
bundles = loadJSON(path.join(root, "bundles.json"));
|
||||
bundles = loadJSON(path.join(root, "bundles.json")),
|
||||
package = loadJSON(path.join(root, "package.json"));
|
||||
|
||||
// Load json
|
||||
function loadJSON(path) {
|
||||
@ -66,7 +63,7 @@ function loadJSON(path) {
|
||||
}
|
||||
|
||||
var build = {
|
||||
js: function (files, bundle, output) {
|
||||
js: function (files, bundle) {
|
||||
for (var key in files) {
|
||||
(function(key) {
|
||||
var name = "js-" + key;
|
||||
@ -77,12 +74,12 @@ var build = {
|
||||
.src(bundles[bundle].js[key])
|
||||
.pipe(concat(key))
|
||||
.pipe(uglify())
|
||||
.pipe(gulp.dest(output));
|
||||
.pipe(gulp.dest(paths[bundle].output));
|
||||
});
|
||||
})(key);
|
||||
}
|
||||
},
|
||||
less: function(files, bundle, output) {
|
||||
less: function(files, bundle) {
|
||||
for (var key in files) {
|
||||
(function (key) {
|
||||
var name = "less-" + key;
|
||||
@ -96,12 +93,12 @@ var build = {
|
||||
.pipe(concat(key))
|
||||
.pipe(prefix(["last 2 versions"], { cascade: true }))
|
||||
.pipe(minify())
|
||||
.pipe(gulp.dest(output));
|
||||
.pipe(gulp.dest(paths[bundle].output));
|
||||
});
|
||||
})(key);
|
||||
}
|
||||
},
|
||||
sass: function(files, bundle, output) {
|
||||
sass: function(files, bundle) {
|
||||
for (var key in files) {
|
||||
(function (key) {
|
||||
var name = "sass-" + key;
|
||||
@ -115,51 +112,51 @@ var build = {
|
||||
.pipe(concat(key))
|
||||
.pipe(prefix(["last 2 versions"], { cascade: true }))
|
||||
.pipe(minify())
|
||||
.pipe(gulp.dest(output));
|
||||
.pipe(gulp.dest(paths[bundle].output));
|
||||
});
|
||||
})(key);
|
||||
}
|
||||
},
|
||||
sprite: function(source, output) {
|
||||
sprite: function() {
|
||||
// Process Icons
|
||||
gulp.task("sprite", function () {
|
||||
return gulp
|
||||
.src(source)
|
||||
.src(paths.plyr.src.sprite)
|
||||
.pipe(svgmin({
|
||||
plugins: [{
|
||||
removeDesc: true
|
||||
}]
|
||||
}))
|
||||
.pipe(svgstore())
|
||||
.pipe(gulp.dest(output));
|
||||
.pipe(gulp.dest(paths.plyr.output));
|
||||
});
|
||||
},
|
||||
templates: function(source, output) {
|
||||
templates: function() {
|
||||
// Build templates
|
||||
gulp.task("templates", function () {
|
||||
return gulp
|
||||
.src(source)
|
||||
.src(paths.docs.src.templates)
|
||||
.pipe(hogan("templates.js", {
|
||||
wrapper: false,
|
||||
templateName: function (file) {
|
||||
return path.basename(file.relative.replace(/\\/g, "-"), path.extname(file.relative));
|
||||
}
|
||||
}))
|
||||
.pipe(gulp.dest(output));
|
||||
.pipe(gulp.dest(paths.docs.output));
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
// Plyr core files
|
||||
build.js(bundles.plyr.js, "plyr", paths.plyr.output.js);
|
||||
build.less(bundles.plyr.less, "plyr", paths.plyr.output.css);
|
||||
build.sass(bundles.plyr.sass, "plyr", paths.plyr.output.css);
|
||||
build.sprite(paths.plyr.src.sprite, paths.plyr.output.sprite);
|
||||
build.js(bundles.plyr.js, "plyr");
|
||||
build.less(bundles.plyr.less, "plyr");
|
||||
build.sass(bundles.plyr.sass, "plyr");
|
||||
build.sprite();
|
||||
|
||||
// Docs files
|
||||
build.templates(paths.docs.src.templates, paths.docs.output.js);
|
||||
build.less(bundles.docs.less, "docs", paths.docs.output.css);
|
||||
build.js(bundles.docs.js, "docs", paths.docs.output.js);
|
||||
build.templates();
|
||||
build.less(bundles.docs.less, "docs");
|
||||
build.js(bundles.docs.js, "docs");
|
||||
|
||||
// Default gulp task
|
||||
gulp.task("default", function(){
|
||||
@ -187,4 +184,35 @@ gulp.task("watch", function () {
|
||||
gulp.watch(paths.docs.src.js, tasks.js);
|
||||
gulp.watch(paths.docs.src.less, tasks.less);
|
||||
gulp.watch(paths.docs.src.templates, "js");
|
||||
});
|
||||
|
||||
// Publish the docs site
|
||||
gulp.task("cdn", function () {
|
||||
try {
|
||||
var aws = loadJSON(path.join(root, "aws.json")),
|
||||
version = package.version,
|
||||
maxAge = 31536000, // seconds 1 year
|
||||
options = {
|
||||
headers: {
|
||||
"Cache-Control": "max-age=" + maxAge + ", no-transform, public",
|
||||
"Content-Encoding": "gzip",
|
||||
"Vary": "Accept-Encoding"
|
||||
},
|
||||
gzippedOnly: true
|
||||
};
|
||||
|
||||
console.log("Publishing " + version);
|
||||
|
||||
return gulp.src("dist/**")
|
||||
.pipe(rename(function (path) {
|
||||
path.dirname = path.dirname.replace(".", version);
|
||||
}))
|
||||
.pipe(gzip())
|
||||
.pipe(s3(aws, options));
|
||||
}
|
||||
catch (e) {}
|
||||
});
|
||||
|
||||
gulp.task("publish", function () {
|
||||
|
||||
});
|
Reference in New Issue
Block a user