gulpfile.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. var gulp = require('gulp');
  2. var concat = require('gulp-concat');
  3. var uglify = require('gulp-uglify');
  4. var debug = require('gulp-debug');
  5. var rename = require('gulp-rename');
  6. var stripDebug = require('gulp-strip-debug');
  7. var gutil = require('gulp-util');
  8. var clean = require('gulp-clean');
  9. var runSequence = require('run-sequence');
  10. var gutil = require('gulp-util');
  11. var through = require('through2');
  12. var replace = require('gulp-replace');
  13. var tap = require('gulp-tap');
  14. var bump = require('gulp-bump');
  15. var shell = require('gulp-shell');
  16. var karma = require('karma').server;
  17. var connect = require('gulp-connect');
  18. var gulpProtractor = require("gulp-protractor").protractor;
  19. var bumpVersion = function(type) {
  20. type = type || 'patch';
  21. var version = '';
  22. gulp.src(['./bower.json', './package.json'])
  23. .pipe(bump({type: type}))
  24. .pipe(gulp.dest('./'))
  25. .pipe(tap(function(file, t) {
  26. version = JSON.parse(file.contents.toString()).version;
  27. })).on('end', function() {
  28. var color = gutil.colors;
  29. gulp.src('')
  30. .pipe(shell([
  31. 'git commit --all --message "Version ' + version + '"',
  32. (type != 'patch' ? 'git tag --annotate "v' + version + '" --message "Version ' + version + '"' : 'true')
  33. ], {ignoreErrors: false}))
  34. .pipe(tap(function() {
  35. gutil.log(color.green("Version bumped to ") + color.yellow(version) + color.green(", don't forget to push!"));
  36. }));
  37. });
  38. };
  39. gulp.task('clean', function() {
  40. return gulp.src('bulid')
  41. .pipe(clean({force: true}));
  42. });
  43. gulp.task('build-js', function() {
  44. return gulp.src([
  45. 'app/scripts/app.js',
  46. 'app/scripts/services/*.js',
  47. 'app/scripts/directives/*.js'
  48. ])
  49. .pipe(concat('ng-map.debug.js'))
  50. .pipe(gulp.dest('build/scripts'))
  51. .pipe(stripDebug())
  52. .pipe(concat('ng-map.js'))
  53. .pipe(gulp.dest('build/scripts'))
  54. .pipe(uglify())
  55. .pipe(rename('ng-map.min.js'))
  56. .pipe(gulp.dest('build/scripts'))
  57. .on('error', gutil.log);
  58. });
  59. gulp.task('docs', shell.task([
  60. 'node_modules/jsdoc/jsdoc.js '+
  61. '-c node_modules/angular-jsdoc/conf.json '+
  62. '-t node_modules/angular-jsdoc/template '+
  63. '-d build/docs '+
  64. './README.md ' +
  65. '-r app/scripts'
  66. ]));
  67. gulp.task('bump', ['build'], function() { bumpVersion('patch'); });
  68. gulp.task('bump:patch', ['build'], function() { bumpVersion('patch'); });
  69. gulp.task('bump:minor', ['build'], function() { bumpVersion('minor'); });
  70. gulp.task('bump:major', ['build'], function() { bumpVersion('major'); });
  71. gulp.task('build', function(callback) {
  72. runSequence('clean', 'build-js', 'test', 'docs', callback);
  73. });
  74. gulp.task('test', function (done) {
  75. karma.start({
  76. configFile: __dirname + '/config/karma.conf.js',
  77. singleRun: true
  78. }, done);
  79. });
  80. gulp.task('testapp-server', function() {
  81. connect.server({
  82. root: __dirname + '/testapp',
  83. port: 8888
  84. });
  85. });
  86. /**
  87. * For first-time user, we need to update webdrivers
  88. * $ node_modules/gulp-protractor/node_modules/protractor/bin/webdriver-manager update
  89. */
  90. gulp.task('e2e-test', ['testapp-server'], function() {
  91. gulp.src([__dirname + "/spec/e2e/*_spec.js"])
  92. .pipe(gulpProtractor({
  93. configFile: __dirname + "/config/protractor.conf.js",
  94. args: [
  95. '--baseUrl', 'http://localhost:8888'
  96. ]
  97. }))
  98. .on('error', function(e) {
  99. throw e;
  100. })
  101. .on('end', function() { // when process exits:
  102. connect.serverClose();
  103. });
  104. });