3 module.exports = function(grunt) {
5 grunt.loadNpmTasks('grunt-contrib-uglify');
6 require('load-grunt-tasks')(grunt);
8 var fs = require('fs');
9 var pullRequest = process.env.TRAVIS_PULL_REQUEST;
10 var distTasks = JSON.parse(fs.readFileSync('Tests/dist-tasks.json'));
11 var options = require('./Tests/gruntfile-options');
14 'connect': options.grunt,
16 options: {name: 'Core'},
17 'all':options.packager.all,
18 'nocompat':options.packager.nocompat,
19 'specs':options.packager.specs,
20 'specs-nocompat':options.packager.specsNoCompat,
21 'dist-all': distTasks.build.compat,
22 'dist-nocompat': distTasks.build.nocompat
24 uglify: distTasks.uglify,
26 options: options.karma,
28 browsers: ['PhantomJS']
31 browsers: [options.travis.browser]
35 browsers: ['PhantomJS'],
38 // Testers for dist build files
39 compatFull: distTasks.testTasks.compatFull,
40 compatUglyfied: distTasks.testTasks.compatUglyfied,
41 nocompatFull: distTasks.testTasks.nocompatFull,
42 nocompatUglified: distTasks.testTasks.nocompatUglified
46 dist: {src: 'dist/mootools-*.js'},
47 specs: {src: 'mootools-*.js'}
51 var compatBuild = ['clean:specs', 'packager:all', 'packager:specs'];
52 var nocompatBuild = ['clean:specs', 'packager:nocompat', 'packager:specs-nocompat'];
53 var tasks = options.travis.build == 'default' ? compatBuild : nocompatBuild;
54 tasks = pullRequest != 'false' ? tasks.concat('karma:continuous') : tasks.concat('karma:sauceTask');
56 grunt.registerTask('default', compatBuild.concat('karma:continuous')); // local testing - compat build
57 grunt.registerTask('nocompat', nocompatBuild.concat('karma:continuous')); // local testing - no compat build
58 grunt.registerTask('default:travis', tasks); // Travis & Sauce Labs
59 grunt.registerTask('distBuild', [ // task to build and test /dist files
61 'clean:dist', 'packager:dist-all', 'packager:dist-nocompat', 'uglify',
62 // Test specs against dist files
63 'clean:specs', 'packager:specs', 'karma:compatFull', 'karma:compatUglyfied',
64 'clean:specs', 'packager:specs-nocompat', 'karma:nocompatFull', 'karma:nocompatUglified'