3 module.exports = function(grunt){
4 var travis = grunt.config.get('environment.travis');
7 compat: ['eslint:compat', 'clean:build', 'packager:compat', 'packager:specs-compat'],
8 nocompat: ['eslint:nocompat', 'clean:build', 'packager:nocompat', 'packager:specs-nocompat'],
9 server: ['eslint:server', 'clean:build', 'packager:server', 'packager:specs-server']
12 compat: ['clean:dist-compat', 'clean:specs', 'packager:dist-compat', 'uglify:dist-compat', 'packager:specs-compat'],
13 nocompat: ['clean:dist-nocompat', 'clean:specs', 'packager:dist-nocompat', 'uglify:dist-nocompat', 'packager:specs-nocompat'],
14 server: ['clean:dist-server', 'clean:specs', 'packager:dist-server', 'packager:specs-server']
17 grunt.registerTask('compat', build.compat.concat('karma:run', 'clean:specs'));
18 grunt.registerTask('compat:test', build.compat.concat('karma:run', 'clean:build'));
19 grunt.registerTask('compat:dev', build.compat.concat('karma:dev'));
20 grunt.registerTask('compat:dist', dist.compat.concat('karma:dist-compat', 'karma:dist-compat-minified', 'clean:specs'));
22 grunt.registerTask('nocompat', build.nocompat.concat('karma:run', 'clean:specs'));
23 grunt.registerTask('nocompat:test', build.nocompat.concat('karma:run', 'clean:build'));
24 grunt.registerTask('nocompat:dev', build.nocompat.concat('karma:dev'));
25 grunt.registerTask('nocompat:dist', dist.nocompat.concat('karma:dist-nocompat', 'karma:dist-nocompat-minified', 'clean:specs'));
27 grunt.registerTask('server', build.server.concat('mochaTest:run', 'clean:specs'));
28 grunt.registerTask('server:test', build.server.concat('mochaTest:run', 'clean:build'));
29 grunt.registerTask('server:dev', build.server.concat('mochaTest:dev'));
30 grunt.registerTask('server:dist', dist.server.concat('mochaTest:dist-server', 'clean:specs'));
32 grunt.registerTask('test', ['compat:test', 'nocompat:test', 'server:test']);
33 grunt.registerTask('dist', ['clean:dist', 'compat:dist', 'nocompat:dist', 'server:dist']);
35 grunt.registerTask('travis', function(){
37 grunt.fail.warn('This does not appear to be travis-ci.');
39 if (!build[travis.build]){
40 grunt.fail.fatal('Unknown build "' + travis.build + '".\nValid builds: ' + Object.keys(build).join(', ') + '.');
43 if (travis.build == 'server'){
44 grunt.task.run(build[travis.build].concat('mochaTest:travis'));
45 } else if (travis.browser == 'phantomjs' || !travis.pullRequest){
46 var browsers = grunt.config.get('karma.options.customLaunchers');
47 if (!browsers[travis.browser]){
48 grunt.fail.fatal('Unknown browser "' + travis.browser + '".\nValid browsers: ' + Object.keys(browsers).join(', ') + '.');
50 grunt.task.run(build[travis.build].concat('karma:travis'));
52 grunt.log.writeln('This appears to be a Pull Request.');
53 grunt.log.writeln('Unfortunately we cannot run browser tests for Pull Requests.');
57 grunt.registerTask('default', function(){
59 grunt.log.writeln('Detected travis-ci environment.');
60 grunt.option('verbose', true);
61 grunt.task.run('travis');
63 grunt.log.writeln('Running all tests.');
64 grunt.task.run('test');