Add ESLint.
[mootools.git] / Grunt / tasks / tasks.js
blob9af60569d20d37ef473330e9d1ee6f4dbadcabcb
1 'use strict';
3 module.exports = function(grunt){
4         var travis = grunt.config.get('environment.travis');
6         var build = {
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']
10                 },
11                 dist = {
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']
15                 };
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(){
36                 if (!travis.enabled){
37                         grunt.fail.warn('This does not appear to be travis-ci.');
38                 }
39                 if (!build[travis.build]){
40                         grunt.fail.fatal('Unknown build "' + travis.build + '".\nValid builds: ' + Object.keys(build).join(', ') + '.');
41                 }
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(', ') + '.');
49                         }
50                         grunt.task.run(build[travis.build].concat('karma:travis'));
51                 } else {
52                         grunt.log.writeln('This appears to be a Pull Request.');
53                         grunt.log.writeln('Unfortunately we cannot run browser tests for Pull Requests.');
54                 }
55         });
57         grunt.registerTask('default', function(){
58                 if (travis.enabled){
59                         grunt.log.writeln('Detected travis-ci environment.');
60                         grunt.option('verbose', true);
61                         grunt.task.run('travis');
62                 } else {
63                         grunt.log.writeln('Running all tests.');
64                         grunt.task.run('test');
65                 }
66         });