forked from dt-rush/siha
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
106 lines (93 loc) · 2.58 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const gulp = require('gulp');
const gls = require('gulp-live-server');
const dotenv = require('dotenv');
const mocha = require('gulp-spawn-mocha');
const jsdoc = require('gulp-jsdoc3');
const git = require('gulp-git');
const exec = require('child_process').exec;
const execSync = require('child_process').execSync;
const CI = process.env.CI === 'true';
const DEBUG = process.env.DEBUG === 'true';
gulp.task('jsdoc', (done) => {
var config = require('./jsdoc.config.json');
gulp.src(['README.md', './lib/**/*.js'], {read: false})
.pipe(jsdoc(config, done));
});
gulp.task('git-add-all', () => {
return gulp.src('.')
.pipe(git.add());
});
gulp.task('commit-version', () => {
const newVersion = execSync('versionist get version').toString().trim();
return gulp.src('.', { read: false })
.pipe(git.commit(`${newVersion}`));
});
gulp.task('tag-version', (done) => {
const newReference = execSync('versionist get reference').toString().trim();
git.tag(newReference, '', (err) => {
if (err) {
throw err;
} else {
done();
}
});
});
gulp.task('versionist-dry', (done) => {
exec('versionist --dry', function (err, stdout, stderr) {
done(err);
});
});
gulp.task('versionist', (done) => {
exec('versionist', function (err, stdout, stderr) {
done(err);
});
});
gulp.task('wait-one-second', (done) => {
setTimeout(done, 1000);
});
gulp.task('push', function (done) {
const headRef = execSync('git rev-parse --short HEAD').toString().trim();
console.log(`pushing origin master in gulp with HEAD: ${headRef}`);
exec('git push origin master', function (err, stdout, stderr) {
done(err);
});
});
const releaseTasks = [
'versionist', 'jsdoc', 'git-add-all',
'commit-version', 'wait-one-second', 'tag-version'
];
gulp.task('release', gulp.series(...releaseTasks));
gulp.task('test', () => {
dotenv.config({
path: './test.env'
});
return gulp.src('./tests/*.spec.js', {read: false})
.pipe(mocha({
env: process.env,
debugBrk: DEBUG,
R: CI ? 'spec' : 'nyan',
istanbul: true,
exit: true
}));
});
gulp.task('dev-serve', () => {
// we will replace this server object with each reload
let server;
// helper function used during reload
const restartServer = async () => {
dotenv.config({
path: './dev.env'
});
if (server) {
await server.stop();
}
server = gls('./lib/app.js', {env: process.env});
server.start();
};
// start the server one time
restartServer();
// set up watchers
gulp.watch(['./lib/**/*.js', './dev.env'], () => {
restartServer();
});
});