-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
86 lines (68 loc) · 2.11 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/******************************************************************************************
Automated building of JavaScript and LESS files courtesy of Gulp
******************************************************************************************/
var package = require("./package.json");
var path = require("path");
var fs = require("fs");
var util = require("util");
var gulp = require("gulp");
var gulpsync = require("gulp-sync")(gulp);
var rename = require("gulp-rename");
var git = require("gulp-git");
var replace = require("gulp-replace");
var gutil = require("gulp-util");
// Git commit hash and branch for this build
var githash = "";
var gitbranch = "";
// Script building utility function
function buildPathArray(prefix, paths) {
var list = [];
prefix = prefix || "";
for (var u = 0; u < paths.length; u++)
list.push(prefix + paths[u]);
return list;
};
// Get the latest commit hash
gulp.task("gitinfo", function(done) {
git.revParse({ args: "--short HEAD" }, function(error, output) {
if (error)
stream.emit("error", new gutil.PluginError("gulp-git", error));
else
githash = output;
// Because Buildkite checks out a commit, git revparse will always return HEAD
if (process.env.BUILDKITE_BRANCH) {
gitbranch = process.env.BUILDKITE_BRANCH;
done();
return;
}
git.revParse({ args: "--abbrev-ref HEAD" }, function(error, output) {
if (error)
stream.emit("error", new gutil.PluginError("gulp-git", error));
else
gitbranch = output;
done();
});
});
});
// Copy built files to release directory
gulp.task("create-config", ["gitinfo"], function() {
try {
fs.unlinkSync("./config.js");
}
catch (error) {
}
return gulp.src("config.js.example")
.pipe(replace(/{{git-commit}}/ig, githash))
.pipe(replace(/{{git-branch}}/ig, gitbranch))
.pipe(rename("config.js"))
.pipe(gulp.dest("./"));
});
// Main release build chain
gulp.task("build", gulpsync.sync(["create-config"], "sync release"));
// Present help info
gulp.task("help", function() {
console.log("options:");
console.log("build\n : standard build");
});
// Default build task
gulp.task("default", ["build"]);