Created
June 21, 2014 18:04
-
-
Save clouddueling/a9282b3da946d3271914 to your computer and use it in GitHub Desktop.
Comparing similar automation tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module.exports = function(grunt) { | |
| grunt.loadNpmTasks('grunt-contrib-concat'); | |
| grunt.loadNpmTasks('grunt-contrib-jshint'); | |
| grunt.loadNpmTasks('grunt-contrib-uglify'); | |
| grunt.loadNpmTasks('grunt-contrib-clean'); | |
| grunt.loadNpmTasks('grunt-contrib-watch'); | |
| grunt.loadNpmTasks('grunt-recess'); | |
| grunt.loadNpmTasks('grunt-shell'); | |
| grunt.loadNpmTasks('grunt-karma'); | |
| grunt.loadNpmTasks('grunt-php'); | |
| grunt.loadNpmTasks('grunt-phpunit'); | |
| // Default Task | |
| grunt.registerTask('default', ['jshint', 'build', 'timestamp']); | |
| grunt.registerTask('build', ['clean', 'concat','recess:build', 'timestamp']); | |
| grunt.registerTask('release', ['clean', 'uglify', 'jshint', 'recess:min','shell:protractor', 'timestamp']); | |
| grunt.registerTask('test-watch', ['karma:watch']); | |
| // Print a timestamp (useful for when watching) | |
| grunt.registerTask('timestamp', function() { | |
| grunt.log.subhead(Date()); | |
| }); | |
| // Project configuration. | |
| grunt.initConfig({ | |
| distdir: 'public/dist', | |
| pkg: grunt.file.readJSON('package.json'), | |
| banner: '/** \n' + | |
| ' * <%= pkg.name %>\n' + | |
| ' * Build: <%= grunt.template.today("yyyy-mm-dd h:mm:ss TT") %>\n' + | |
| ' * <%= pkg.homepage %>\n' + | |
| ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' + | |
| ' */\n\n', | |
| src: { | |
| js: ['public/apps/**/*.js', 'public/modules/**/*.js'], | |
| spec: ['public/tests/unit/**/*Spec.js'], | |
| lessWatch: 'public/less/**/*.less' | |
| }, | |
| clean: ['<%= distdir %>/**/*'], | |
| shell: { | |
| options : { | |
| stdout: true | |
| }, | |
| protractor: { | |
| command: 'protractor public/tests/e2e.conf.js' | |
| } | |
| }, | |
| karma: { | |
| unit: { | |
| configFile: 'public/tests/unit.conf.js' | |
| }, | |
| watch: { | |
| configFile: 'public/tests/unit.conf.js', | |
| singleRun: false, | |
| autoWatch: true | |
| } | |
| }, | |
| recess: { | |
| options: { | |
| compile: true | |
| }, | |
| build: { | |
| files: { | |
| '<%= distdir %>/css/main.css': ['public/less/main/main.less'], | |
| '<%= distdir %>/css/home.css': ['public/less/home/main.less'] | |
| } | |
| }, | |
| min: { | |
| files: { | |
| '<%= distdir %>/css/main.css': ['public/less/main/main.less'], | |
| '<%= distdir %>/css/home.css': ['public/less/home/main.less'] | |
| } | |
| } | |
| }, | |
| concat: { | |
| options: { | |
| banner: '<%= banner %>', | |
| process: function(src, filepath) { | |
| return '\n\n/*\n' + filepath + '\n*/\n' + src; | |
| } | |
| }, | |
| vendor: { | |
| src: '<%= pkg.assets.vendor %>', | |
| dest: '<%= distdir %>/js/vendor.js' | |
| }, | |
| profile: { | |
| src: '<%= pkg.assets.profile %>', | |
| dest: '<%= distdir %>/js/profile.js' | |
| }, | |
| admin: { | |
| src: '<%= pkg.assets.admin %>', | |
| dest: '<%= distdir %>/js/admin.js' | |
| }, | |
| rmc: { | |
| src: '<%= pkg.assets.rmc %>', | |
| dest: '<%= distdir %>/js/rmc.js' | |
| }, | |
| lmc: { | |
| src: '<%= pkg.assets.lmc %>', | |
| dest: '<%= distdir %>/js/lmc.js' | |
| }, | |
| broadcasts: { | |
| src: '<%= pkg.assets.broadcasters %>', | |
| dest: '<%= distdir %>/js/broadcasters.js' | |
| }, | |
| promote: { | |
| src: '<%= pkg.assets.promote %>', | |
| dest: '<%= distdir %>/js/promote.js' | |
| }, | |
| product: { | |
| src: '<%= pkg.assets.product %>', | |
| dest: '<%= distdir %>/js/product.js' | |
| }, | |
| webpageBuilder: { | |
| src: '<%= pkg.assets.webpageBuilder %>', | |
| dest: '<%= distdir %>/js/webpageBuilder.js' | |
| } | |
| }, | |
| uglify: { | |
| options: { | |
| banner: '<%= banner %>' | |
| }, | |
| vendor: { | |
| src: '<%= pkg.assets.vendor %>', | |
| dest: '<%= distdir %>/js/vendor.js' | |
| }, | |
| profile: { | |
| src: '<%= pkg.assets.profile %>', | |
| dest: '<%= distdir %>/js/profile.js' | |
| }, | |
| admin: { | |
| src: '<%= pkg.assets.admin %>', | |
| dest: '<%= distdir %>/js/admin.js' | |
| }, | |
| rmc: { | |
| src: '<%= pkg.assets.rmc %>', | |
| dest: '<%= distdir %>/js/rmc.js', | |
| options: { | |
| mangle: false | |
| } | |
| }, | |
| lmc: { | |
| src: '<%= pkg.assets.lmc %>', | |
| dest: '<%= distdir %>/js/lmc.js' | |
| }, | |
| broadcasts: { | |
| src: '<%= pkg.assets.broadcasters %>', | |
| dest: '<%= distdir %>/js/broadcasters.js' | |
| }, | |
| promote: { | |
| src: '<%= pkg.assets.promote %>', | |
| dest: '<%= distdir %>/js/promote.js' | |
| }, | |
| product: { | |
| src: '<%= pkg.assets.product %>', | |
| dest: '<%= distdir %>/js/product.js' | |
| }, | |
| webpageBuilder: { | |
| src: '<%= pkg.assets.webpageBuilder %>', | |
| dest: '<%= distdir %>/js/webpageBuilder.js' | |
| } | |
| }, | |
| phpunit: { | |
| classes: { | |
| dir: grunt.option('path') || '' | |
| }, | |
| options: { | |
| bin: 'phpunit', | |
| colors: true, | |
| followOutput: true | |
| } | |
| }, | |
| watch: { | |
| all: { | |
| files: ['public/apps/**/*.js', 'public/modules/**/*.js', 'public/tests/unit/**/*Spec.js', 'public/less/**/*.less'], | |
| tasks:['default','timestamp'] | |
| }, | |
| build: { | |
| files: ['public/apps/**/*.js', 'public/modules/**/*.js', 'public/tests/unit/**/*Spec.js', 'public/less/**/*.less'], | |
| tasks:['build','timestamp'] | |
| }, | |
| rmc: { | |
| files: ['public/apps/rmc/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| lmc: { | |
| files: ['public/apps/lmc/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| profile: { | |
| files: ['public/apps/profile/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| promote: { | |
| files: ['public/apps/promote/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| modules: { | |
| files: ['public/modules/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| broadcasters: { | |
| files: ['public/apps/broadcasters/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| webpageBuilder: { | |
| files: ['public/apps/webpageBuilder/**/*.js'], | |
| tasks:['build','timestamp'] | |
| }, | |
| less: { | |
| files: ['public/less/**/*.less', 'public/modules/**/*.less'], | |
| tasks: ['recess','timestamp'] | |
| }, | |
| js: { | |
| files: ['public/apps/**/*.js', 'public/modules/**/*.js'], | |
| tasks: ['concat','timestamp'] | |
| }, | |
| phpunit: { | |
| files: ['application/**/*.php'], | |
| tasks: ['phpunit'] | |
| } | |
| }, | |
| jshint:{ | |
| options: { | |
| jshintrc: '/Users/tszemkus/.jshintrc', | |
| ignore: [ | |
| 'public/js/scripts.js', | |
| 'public/modules/angular-bootstrap-colorpicker/js/bootstrap-colorpicker-module.js', | |
| 'public/modules/fabric/fabric.js' | |
| ] | |
| }, | |
| files: [ | |
| '<%= src.spec %>', | |
| '<%= src.js %>', | |
| 'gruntfile.js' | |
| ] | |
| } | |
| }); | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| var gulp = require('gulp'), | |
| concat = require('gulp-concat'), | |
| uglify = require('gulp-uglify'), | |
| plumber = require('gulp-plumber') | |
| nodemon = require('gulp-nodemon'); | |
| var clientDir = 'client'; | |
| var publicDir = 'public'; | |
| var bowerDir = 'public/bower_components'; | |
| gulp.task('watch-account', function() { | |
| gulp.watch(clientDir + '/account/**/*.js', ['account-js']); | |
| gulp.watch(clientDir + '/account/**/*.html', ['account-html']); | |
| }); | |
| gulp.task('default', [ | |
| 'account-js', | |
| 'account-html', | |
| 'account-vendor' | |
| ]); | |
| gulp.task('start', function() { | |
| nodemon({ | |
| script: 'server.js', | |
| ext: 'html js', | |
| ignore: ['node_modules/'] | |
| }) | |
| .on('change', []) | |
| .on('restart', function() { | |
| console.log('Server restarted!'); | |
| }); | |
| }); | |
| gulp.task('account-js', function() { | |
| return gulp.src(clientDir + '/account/**/*.js') | |
| .pipe(plumber()) | |
| .pipe(concat('account.js')) | |
| .pipe(gulp.dest(publicDir + '/dist/account')); | |
| }); | |
| gulp.task('account-html', function() { | |
| return gulp.src(clientDir + '/account/**/*.html') | |
| .pipe(plumber()) | |
| .pipe(gulp.dest(publicDir + '/dist/account')); | |
| }); | |
| gulp.task('account-vendor', function() { | |
| return gulp.src([ | |
| bowerDir + '/lodash/dist/lodash.min.js', | |
| bowerDir + '/momentjs/min/moment.min.js', | |
| bowerDir + '/jquery/dist/jquery.min.js', | |
| bowerDir + '/bootstrap/dist/js/bootstrap.min.js', | |
| bowerDir + '/angular/angular.js', | |
| bowerDir + '/angular-animate/angular-animate.min.js', | |
| bowerDir + '/angular-bootstrap/ui-bootstrap-tpls.min.js', | |
| bowerDir + '/angular-ui-router/release/angular-ui-router.min.js', | |
| bowerDir + '/angular-loading-bar/build/loading-bar.min.js', | |
| bowerDir + '/angular-ui-calendar/src/calendar.js', | |
| bowerDir + '/seiyria-bootstrap-slider/dist/bootstrap-slider.min.js', | |
| bowerDir + '/jquery-steps/build/jquery.steps.min.js', | |
| bowerDir + '/toastr/toastr.min.js', | |
| bowerDir + '/bootstrap-file-input/bootstrap.file-input.js', | |
| bowerDir + '/jquery.slimscroll/jquery.slimscroll.min.js', | |
| bowerDir + '/holderjs/holder.js', | |
| bowerDir + '/raphael/raphael-min.js', | |
| bowerDir + '/morris.js/morris.js', | |
| bowerDir + '/scripts/vendors/responsive-tables.js', | |
| bowerDir + '/scripts/vendors/jquery.sparkline.min.js', | |
| bowerDir + '/flot/jquery.flot.js', | |
| bowerDir + '/flot/jquery.flot.resize.js', | |
| bowerDir + '/flot/jquery.flot.pie.js', | |
| bowerDir + '/flot/jquery.flot.stack.js', | |
| bowerDir + '/flot/jquery.flot.time.js', | |
| bowerDir + '/gauge.js/dist/gauge.min.js', | |
| bowerDir + '/jquery.easy-pie-chart/dist/angular.easypiechart.min.js', | |
| bowerDir + '/angular-wizard/dist/angular-wizard.min.js', | |
| bowerDir + '/fullcalendar/fullcalendar.min.js', | |
| bowerDir + '/fullcalendar/gcal.js', | |
| bowerDir + '/angularjs-imageupload-directive/public/javascripts/imageupload.js', | |
| '../../clouddueling/public/modules/time/time.js' | |
| ]) | |
| .pipe(plumber()) | |
| .pipe(concat('accountVendor.js')) | |
| .pipe(uglify()) | |
| .pipe(gulp.dest(publicDir + '/dist/account')); | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment