-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgulpfile.js
78 lines (71 loc) · 1.83 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
(() => {
'use strict';
const ENV = process.env.NODE_ENV || 'development';
if (ENV === 'development') {
require('dotenv').load();
}
let gulp = require('gulp'),
jshint = require('gulp-jshint'),
reporter = require('gulp-codeclimate-reporter'),
istanbul = require('gulp-istanbul'),
nodemon = require('gulp-nodemon'),
mocha = require('gulp-mocha'),
paths = {
serverTests: ['./tests/*.spec.js'],
app: ['./server/*.js']
};
gulp.task('pre-test', () => {
return gulp.src(paths.app)
.pipe(istanbul())
.pipe(istanbul.hookRequire());
});
gulp.task('test:server', ['pre-test'], () => {
return gulp.src(paths.serverTests)
.pipe(mocha({
reporter: 'spec'
}))
.once('error', err => {
throw new Error(err);
})
.pipe(istanbul({
includeUntested: true
}))
.pipe(istanbul.writeReports({
dir: './coverage',
reporters: ['lcov'],
reportOpts: {
dir: './coverage'
}
}))
.once('end', () => {});
});
gulp.task('lint', () => {
return gulp.src(['./index.js', 'gulpfile.js',
'./server/**/*.js', './tests/**/*.js'
])
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
gulp.task('codeclimate-reporter', ['test:server'], () => {
return gulp.src('coverage/lcov.info', {
read: false
})
.pipe(reporter({
token: process.env.CODECLIMATE_TOKEN,
verbose: true
}));
});
gulp.task('nodemon', () => {
nodemon({
script: 'index.js',
ext: 'js',
ignore: ['public/', 'node_modules/']
})
.on('change', ['lint'])
.on('restart', () => {
console.log('>> node restart');
});
});
gulp.task('test', ['codeclimate-reporter']);
gulp.task('default', ['nodemon']);
})();