]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Add environment variables for sauce-labs in Grunt task
authorIskren Chernev <iskren.chernev@gmail.com>
Tue, 24 Dec 2013 16:45:59 +0000 (17:45 +0100)
committerIskren Chernev <iskren.chernev@gmail.com>
Sat, 28 Dec 2013 20:56:08 +0000 (12:56 -0800)
To use sauce testing from a dev machine please contact ichernev on github.

Gruntfile.js
min/moment-with-langs.js
package.json

index d8ca9869fe13a4048db4b49d64494d3887341ee6..d2c47fd73918e1857d270a7c61537ed1cfdd9ec0 100644 (file)
@@ -30,15 +30,16 @@ module.exports = function (grunt) {
                 dest: 'min/tests.js'
             }
         },
-
-        karma: {
+        env : {
+            sauceLabs : (grunt.file.exists('.sauce-labs.creds') ?
+                    grunt.file.readJSON('.sauce-labs.creds') : {})
+        },
+        karma : {
             options: {
                 frameworks: ['nodeunit'],
                 files: [
                     'min/moment-with-langs.js',
                     'min/tests.js',
-                    // 'test/moment/**/*.js',
-                    // 'test/lang/**/*.js',
                     'test/browser.js'
                 ],
                 sauceLabs: {
@@ -175,6 +176,7 @@ module.exports = function (grunt) {
     grunt.loadNpmTasks('grunt-contrib-concat');
     grunt.loadNpmTasks('grunt-contrib-uglify');
     grunt.loadNpmTasks('grunt-contrib-watch');
+    grunt.loadNpmTasks('grunt-env');
     grunt.loadNpmTasks('grunt-karma');
 
     // Default task.
@@ -184,12 +186,17 @@ module.exports = function (grunt) {
     grunt.registerTask('test', ['test:node', 'test:browser']);
     grunt.registerTask('test:node', ['nodeunit']);
     grunt.registerTask('test:browser', ['concat', 'embed_languages', 'karma:chrome']);
-    grunt.registerTask('test:sauce-browser', ['concat', 'embed_languages', 'karma:sauce']);
+    grunt.registerTask('test:sauce-browser', ['concat', 'embed_languages', 'env:sauceLabs', 'karma:sauce']);
+    grunt.registerTask('test:travis-sauce-browser', ['concat', 'embed_languages', 'karma:sauce']);
 
     // travis build task
-    grunt.registerTask('build:travis', ['jshint', 'test:node', 'test:sauce-browser']);
+    grunt.registerTask('build:travis', [
+            'jshint', 'test:node', 'test:travis-sauce-browser'
+    ]);
 
     // Task to be run when releasing a new version
-    grunt.registerTask('release', ['jshint', 'nodeunit', 'concat',
-            'embed_languages', 'component', 'uglify']);
+    grunt.registerTask('release', [
+            'jshint', 'nodeunit', 'concat', 'embed_languages',
+            'component', 'uglify'
+    ]);
 };
index 7af0f9401e3e065d052327437aa5162026058210..fa3fa03770af8dca05fdc94499e47d6656183716 100644 (file)
 
         // iso 8601 regex
         // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
-        isoRegex = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
+        isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
 
         isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
 
         isoDates = [
-            'YYYY-MM-DD',
-            'GGGG-[W]WW',
-            'GGGG-[W]WW-E',
-            'YYYY-DDD'
+            ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
+            ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/],
+            ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/],
+            ['GGGG-[W]WW', /\d{4}-W\d{2}/],
+            ['YYYY-DDD', /\d{4}-\d{3}/]
         ],
 
         // iso time formats and regexes
     // left zero fill a number
     // see http://jsperf.com/left-zero-filling for performance comparison
     function leftZeroFill(number, targetLength, forceSign) {
-        var output = Math.abs(number) + '',
+        var output = '' + Math.abs(number),
             sign = number >= 0;
 
         while (output.length < targetLength) {
 
     // date from iso format
     function makeDateFromString(config) {
-        var i,
+        var i, l,
             string = config._i,
             match = isoRegex.exec(string);
 
         if (match) {
             config._pf.iso = true;
-            for (i = 4; i > 0; i--) {
-                if (match[i]) {
+            for (i = 0, l = isoDates.length; i < l; i++) {
+                if (isoDates[i][1].exec(string)) {
                     // match[5] should be "T" or undefined
-                    config._f = isoDates[i - 1] + (match[6] || " ");
+                    config._f = isoDates[i][0] + (match[6] || " ");
                     break;
                 }
             }
-            for (i = 0; i < 4; i++) {
+            for (i = 0, l = isoTimes.length; i < l; i++) {
                 if (isoTimes[i][1].exec(string)) {
                     config._f += isoTimes[i][0];
                     break;
 
     //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
     function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
-        // The only solid way to create an iso date from year is to use
-        // a string format (Date.UTC handles only years > 1900). Don't ask why
-        // it doesn't need Z at the end.
-        var d = new Date(leftZeroFill(year, 6, true) + '-01-01').getUTCDay(),
-            daysToAdd, dayOfYear;
+        var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear;
 
         weekday = weekday != null ? weekday : firstDayOfWeek;
         daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0);
index 80b82996ef2126a6c6ab30b2689543133c38be68..1049644d0afcacd602534c1ce722fbb11b432050 100644 (file)
@@ -46,6 +46,7 @@
         "grunt-contrib-concat": "latest",
         "grunt-contrib-uglify": "latest",
         "grunt-contrib-watch": "latest",
+        "grunt-env": "latest",
         "grunt-lib-legacyhelpers": "latest",
         "grunt-karma": "~0.7.2",
         "karma": "~0.11.0",