bridge-scorer
Version:
collection of duplicate bridge scoring algorithms.
89 lines (75 loc) • 2.17 kB
JavaScript
;
var gulp = require('gulp');
var rename = require('gulp-rename');
var jshint = require('gulp-jshint');
var mocha = require('gulp-spawn-mocha');
var browserify = require('browserify');
var uglify = require('gulp-uglify');
var coveralls = require('gulp-coveralls');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
var glob = require('glob');
var pump = require('pump');
var DEBUG = process.env.NODE_ENV === 'debug',
CI = process.env.CI === 'true';
var paths = {
test: ['./test/**/*.js', '!test/{temp,temp/**}'],
source: ['./lib/**/*.js', './bin/*']
};
paths.lint = paths.source.concat(paths.test);
var plumberConf = {};
if (CI) {
plumberConf.errorHandler = function(err) {
throw err;
};
}
gulp.task('lint', function() {
return gulp.src(paths.lint)
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'))
.pipe(jshint.reporter('fail'));
});
gulp.task('istanbul', function () {
return gulp.src(paths.test, {read: false})
.pipe(mocha({
debugBrk: DEBUG,
R: 'spec',
istanbul: !DEBUG
}));
});
gulp.task('dist-lib', function(cb) {
pump([
browserify('./index.js', { standalone: 'scorer'}).bundle(),
source('bridge-scorer.js'),
gulp.dest('./dist/'),
buffer(),
uglify(),
rename({suffix: '.min'}),
gulp.dest('./dist/'),
], cb);
});
gulp.task('dist-test', function (cb) {
glob('./test/**/*.js', {}, function (err, files) {
var b = browserify({standalone: 'spec'});
files.forEach(function (file) {
b.add(file);
});
pump([
b.bundle(),
source('bridge-scorer.spec.js'),
gulp.dest('./dist/'),
buffer(),
uglify(),
rename({suffix: '.min'}),
gulp.dest('./dist/'),
], cb);
});
});
gulp.task('coverage', function () {
return gulp.src('./coverage/lcov.info')
.pipe(coveralls());
});
gulp.task('test', ['lint', 'istanbul']);
gulp.task('dist', ['dist-lib', 'dist-test']);
gulp.task('ci', ['test', 'dist']);
gulp.task('default', ['test']);