-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.coffee
67 lines (59 loc) · 1.55 KB
/
gulpfile.coffee
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
gulp = require('gulp')
watch = require('gulp-watch')
plumber = require('gulp-plumber')
coffee = require('gulp-coffee')
jasmine = require('gulp-jasmine')
istanbul = require('gulp-istanbul')
sourceFiles = ['./src/index.coffee']
libFiles = ['./lib/index.js']
coveralls = require('gulp-coveralls')
markdox = require("gulp-markdox")
coffeelint = require('gulp-coffeelint')
gulp.task('develop', ->
gulp.src(sourceFiles)
.pipe(watch(sourceFiles, verbose: true))
.pipe(plumber())
.pipe(coffee(bare: yes))
.pipe(gulp.dest('./lib'))
)
gulp.task('build', ->
gulp.src(sourceFiles)
.pipe(plumber())
.pipe(coffee(bare: yes))
.pipe(gulp.dest('./lib'))
)
gulp.task('pre-test', ['build'], ->
gulp.src(libFiles)
.pipe(plumber())
.pipe(istanbul())
.pipe(istanbul.hookRequire())
)
gulp.task('test', ['pre-test'], ->
gulp.src(['test/index.js'])
.pipe(plumber())
.pipe(jasmine({
verbose: false,
includeStackTrace: true
}))
.pipe(istanbul.writeReports({
dir: './coverage',
reporters: [ 'lcov', 'json', 'text', 'text-summary' ],
reportOpts: { dir: './coverage' }
}))
.pipe(istanbul.enforceThresholds({ thresholds: { global: 90 } }))
)
gulp.task('coveralls', ->
gulp.src('./coverage/**/lcov.info')
.pipe(coveralls())
)
gulp.task('doc', ->
gulp.src(sourceFiles)
.pipe(markdox({ concat: 'API.md', output: 'API.md' }))
.pipe(gulp.dest("./"));
)
gulp.task('lint', ->
gulp.src(sourceFiles)
.pipe(coffeelint())
.pipe(coffeelint.reporter())
)
gulp.task('default', ['build', 'test', 'doc'])