diff options
Diffstat (limited to 'library/moment/Gruntfile.js')
-rw-r--r-- | library/moment/Gruntfile.js | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/library/moment/Gruntfile.js b/library/moment/Gruntfile.js new file mode 100644 index 000000000..cfb7dca13 --- /dev/null +++ b/library/moment/Gruntfile.js @@ -0,0 +1,188 @@ +module.exports = function (grunt) { + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + env : { + sauceLabs : (grunt.file.exists('.sauce-labs.creds') ? + grunt.file.readJSON('.sauce-labs.creds') : {}) + }, + karma : { + options: { + frameworks: ['qunit'], + files: [ + 'min/moment-with-locales.js', + 'min/tests.js' + ], + sauceLabs: { + startConnect: true, + testName: 'MomentJS' + }, + customLaunchers: { + slChromeWinXp: { + base: 'SauceLabs', + browserName: 'chrome', + platform: 'Windows XP' + }, + slIe9Win7: { + base: 'SauceLabs', + browserName: 'internet explorer', + platform: 'Windows 7', + version: '9' + }, + slIe8Win7: { + base: 'SauceLabs', + browserName: 'internet explorer', + platform: 'Windows 7', + version: '8' + }, + slFfLinux: { + base: 'SauceLabs', + browserName: 'firefox', + platform: 'Linux' + }, + slSafariOsx: { + base: 'SauceLabs', + browserName: 'safari', + platform: 'OS X 10.8' + } + } + }, + server: { + browsers: [] + }, + chrome: { + singleRun: true, + browsers: ['Chrome'] + }, + firefox: { + singleRun: true, + browsers: ['Firefox'] + }, + sauce: { + options: { + reporters: ['dots'] + }, + singleRun: true, + browsers: [ + 'slChromeWinXp', + 'slIe9Win7', + 'slIe8Win7', + 'slFfLinux', + 'slSafariOsx' + ] + } + }, + uglify : { + main: { + files: { + 'min/moment-with-locales.min.js' : 'min/moment-with-locales.js', + 'min/locales.min.js' : 'min/locales.js', + 'min/moment.min.js' : 'moment.js' + } + }, + options: { + mangle: true, + compress: { + dead_code: false // jshint ignore:line + }, + output: { + ascii_only: true // jshint ignore:line + }, + report: 'min', + preserveComments: 'some' + } + }, + jshint: { + all: [ + 'Gruntfile.js', + 'tasks/**.js', + 'src/**/*.js' + ], + options: { + jshintrc: true + } + }, + jscs: { + all: [ + 'Gruntfile.js', + 'tasks/**.js', + 'src/**/*.js' + ], + options: { + config: '.jscs.json' + } + }, + watch : { + test : { + files : [ + 'src/**/*.js' + ], + tasks: ['test'] + }, + jshint : { + files : '<%= jshint.all %>', + tasks: ['jshint'] + } + }, + benchmark: { + all: { + src: ['benchmarks/*.js'] + } + }, + exec: { + 'meteor-init': { + command: [ + // Make sure Meteor is installed, per https://meteor.com/install. + // The curl'ed script is safe; takes 2 minutes to read source & check. + 'type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }', + // Meteor expects package.js to be in the root directory of + // the checkout, but we already have a package.js for Dojo + 'mv package.js package.dojo && cp meteor/package.js .' + ].join(';') + }, + 'meteor-cleanup': { + // remove build files and restore Dojo's package.js + command: 'rm -rf ".build.*" versions.json; mv package.dojo package.js' + }, + 'meteor-test': { + command: 'spacejam --mongo-url mongodb:// test-packages ./' + }, + 'meteor-publish': { + command: 'meteor publish' + } + } + + }); + + grunt.loadTasks('tasks'); + + // These plugins provide necessary tasks. + require('load-grunt-tasks')(grunt); + + // Default task. + grunt.registerTask('default', ['lint', 'test:node']); + + // linting + grunt.registerTask('lint', ['jshint', 'jscs']); + + // test tasks + grunt.registerTask('test', ['test:node']); + grunt.registerTask('test:node', ['transpile', 'qtest']); + // TODO: For some weird reason karma doesn't like the files in + // build/umd/min/* but works with min/*, so update-index, then git checkout + grunt.registerTask('test:server', ['transpile', 'update-index', 'karma:server']); + grunt.registerTask('test:browser', ['transpile', 'update-index', 'karma:chrome', 'karma:firefox']); + grunt.registerTask('test:sauce-browser', ['transpile', 'update-index', 'env:sauceLabs', 'karma:sauce']); + grunt.registerTask('test:meteor', ['exec:meteor-init', 'exec:meteor-test', 'exec:meteor-cleanup']); + + // travis build task + grunt.registerTask('build:travis', ['default']); + grunt.registerTask('meteor-publish', ['exec:meteor-init', 'exec:meteor-publish', 'exec:meteor-cleanup']); + + // Task to be run when releasing a new version + grunt.registerTask('release', [ + 'default', + 'update-index', + 'component', + 'uglify:main' + ]); +}; |