]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
switch to Sauce Labs for our cross-browser JS unit testing needs 11701/head
authorChris Rebert <code@rebertia.com>
Wed, 4 Dec 2013 02:42:31 +0000 (18:42 -0800)
committerChris Rebert <code@rebertia.com>
Wed, 4 Dec 2013 05:57:22 +0000 (21:57 -0800)
Fixes #11087

.travis.yml
Gruntfile.js
README.md
browserstack.json [deleted file]
package.json

index 775a7f15aad2b6c62263d28e191f26b60f49d1f4..7ccf23744c0c9e8cdf2cf6a0291ce7dd46564431 100644 (file)
@@ -6,6 +6,5 @@ before_script:
   - npm install -g grunt-cli
 env:
   global:
-  - secure: Besg41eyU+2mfxrywQ4ydOShMdc34ImaO0S0ENP+aCOBuyNBIgP59wy5tBMmyai2/8eInYeVps4Td96mWInMMxzTe3Bar7eTLG5tWVKRSr/wc4NBPZ/ppoPAmCEsz9Y+VptRH9/FO8n7hsL9EFZ+xBKbG+C0SccGoyBDpA5j7/w=
-  - secure: Ptiv7phCImFP3ALIz+sMQzrZg8k7C1gLZbFBhWxjnQr3g06wIfX3Ls5y9OHvxid+lOZZjISui3wzBVgpVHqwHUYf96+r0mo6/mJ+F4ffUmShZANVaIMD/JRTnXhUQJbvntGLvxn1EYWPdNM+2IHJrMipnjHxU9tkgAnlel4Zdew=
-  - TWBS_HAVE_OWN_BROWSERSTACK_KEY: ""
+  - SAUCE_USERNAME: bootstrap
+  - secure: "pJkBwnuae9dKU5tEcCqccfS1QQw7/meEcfz63fM7ba7QJNjoA6BaXj08L5Z3Vb5vBmVPwBawxo5Hp0jC0r/Z/O0hGnAmz/Cz09L+cy7dSAZ9x4hvZePSja/UAusaB5ogMoO8l2b773MzgQeSmrLbExr9BWLeqEfjC2hFgdgHLaQ="
index d4b2fdd0b57ae9d231df57d8263ad0c7f16c0aa8..77477596d8a0bfdf20b5b4cd28fd93eaf4388d79 100644 (file)
@@ -169,12 +169,105 @@ module.exports = function(grunt) {
         replacement: grunt.option('newver'),
         recursive: true
       }
+    },
+
+    'saucelabs-qunit': {
+      all: {
+        options: {
+          build: process.env.TRAVIS_JOB_ID,
+          concurrency: 3,
+          urls: ['http://127.0.0.1:3000/js/tests/index.html'],
+          browsers: [
+            // See https://saucelabs.com/docs/platforms/webdriver
+            {
+              browserName: 'safari',
+              version: '6',
+              platform: 'OS X 10.8'
+            },
+            {
+              browserName: 'chrome',
+              version: '28',
+              platform: 'OS X 10.6'
+            },
+            /* FIXME: currently fails 1 tooltip test
+            {
+              browserName: 'firefox',
+              version: '25',
+              platform: 'OS X 10.6'
+            },*/
+            // Mac Opera not currently supported by Sauce Labs
+            /* FIXME: currently fails 1 tooltip test
+            {
+              browserName: 'internet explorer',
+              version: '11',
+              platform: 'Windows 8.1'
+            },*/
+            /*
+            {
+              browserName: 'internet explorer',
+              version: '10',
+              platform: 'Windows 8'
+            },
+            {
+              browserName: 'internet explorer',
+              version: '9',
+              platform: 'Windows 7'
+            },
+            {
+              browserName: 'internet explorer',
+              version: '8',
+              platform: 'Windows 7'
+            },
+            {// unofficial
+              browserName: 'internet explorer',
+              version: '7',
+              platform: 'Windows XP'
+            },
+            */
+            {
+              browserName: 'chrome',
+              version: '31',
+              platform: 'Windows 8.1'
+            },
+            {
+              browserName: 'firefox',
+              version: '25',
+              platform: 'Windows 8.1'
+            },
+            // Win Opera 15+ not currently supported by Sauce Labs
+            {
+              browserName: 'iphone',
+              version: '6.1',
+              platform: 'OS X 10.8'
+            },
+            // iOS Chrome not currently supported by Sauce Labs
+            // Linux (unofficial)
+            {
+              browserName: 'chrome',
+              version: '30',
+              platform: 'Linux'
+            },
+            {
+              browserName: 'firefox',
+              version: '25',
+              platform: 'Linux'
+            }
+            // Android Chrome not currently supported by Sauce Labs
+            /* Android Browser (super-unofficial)
+            {
+              browserName: 'android',
+              version: '4.0',
+              platform: 'Linux'
+            }
+            */
+          ],
+        }
+      }
     }
   });
 
 
   // These plugins provide necessary tasks.
-  grunt.loadNpmTasks('browserstack-runner');
   grunt.loadNpmTasks('grunt-contrib-clean');
   grunt.loadNpmTasks('grunt-contrib-concat');
   grunt.loadNpmTasks('grunt-contrib-connect');
@@ -186,6 +279,7 @@ module.exports = function(grunt) {
   grunt.loadNpmTasks('grunt-html-validation');
   grunt.loadNpmTasks('grunt-jekyll');
   grunt.loadNpmTasks('grunt-recess');
+  grunt.loadNpmTasks('grunt-saucelabs');
   grunt.loadNpmTasks('grunt-sed');
 
   // Docs HTML validation task
@@ -193,12 +287,10 @@ module.exports = function(grunt) {
 
   // Test task.
   var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html'];
-  // Only run BrowserStack tests under Travis
-  if (process.env.TRAVIS) {
-    // Only run BrowserStack tests if this is a mainline commit in twbs/bootstrap, or you have your own BrowserStack key
-    if ((process.env.TRAVIS_REPO_SLUG === 'twbs/bootstrap' && process.env.TRAVIS_PULL_REQUEST === 'false') || process.env.TWBS_HAVE_OWN_BROWSERSTACK_KEY) {
-      testSubtasks.push('browserstack_runner');
-    }
+  // Only run Sauce Labs tests if there's a Sauce access key
+  if (typeof process.env.SAUCE_ACCESS_KEY !== 'undefined') {
+    testSubtasks.push('connect');
+    testSubtasks.push('saucelabs-qunit');
   }
   grunt.registerTask('test', testSubtasks);
 
index 3e1b17dec5af11274080466ce92dec0a2462d1a7..67cbb4ab7aed43f74ac4773e7aec5f4cc846194f 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
 # [Bootstrap](http://getbootstrap.com) [![Build Status](https://secure.travis-ci.org/twbs/bootstrap.png)](http://travis-ci.org/twbs/bootstrap) [![devDependency Status](https://david-dm.org/twbs/bootstrap/dev-status.png)](https://david-dm.org/twbs/bootstrap#info=devDependencies)
+[![Selenium Test Status](https://saucelabs.com/browser-matrix/bootstrap.svg)](https://saucelabs.com/u/bootstrap)
 
 Bootstrap is a sleek, intuitive, and powerful front-end framework for faster and easier web development, created and maintained by [Mark Otto](http://twitter.com/mdo) and [Jacob Thornton](http://twitter.com/fat).
 
diff --git a/browserstack.json b/browserstack.json
deleted file mode 100644 (file)
index 104d854..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-{
-  "username": "--secure--",
-  "key": "--secure--",
-  "test_path": "js/tests/index.html",
-  "browsers": [
-    {
-      "browser": "firefox",
-      "browser_version": "latest",
-      "os": "OS X",
-      "os_version": "Mountain Lion"
-    },
-    {
-      "browser": "safari",
-      "browser_version": "latest",
-      "os": "OS X",
-      "os_version": "Mountain Lion"
-    },
-    {
-      "browser": "chrome",
-      "browser_version": "latest",
-      "os": "OS X",
-      "os_version": "Mountain Lion"
-    },
-    {
-      "browser": "firefox",
-      "browser_version": "latest",
-      "os": "Windows",
-      "os_version": "7"
-    },
-    {
-      "browser": "chrome",
-      "browser_version": "latest",
-      "os": "Windows",
-      "os_version": "7"
-    }
-  ]
-}
index bc2a004afe0c16d7cd14d18f9191f235c007f375..813cf1d13592d121ebb1d82e326abb63880c5f7a 100644 (file)
@@ -20,8 +20,7 @@
     }
   ]
   , "devDependencies": {
-      "browserstack-runner": "~0.0.12"
-    , "btoa": "~1.1.1"
+      "btoa": "~1.1.1"
     , "grunt": "~0.4.1"
     , "grunt-contrib-clean": "~0.5.0"
     , "grunt-contrib-concat": "~0.3.0"
@@ -34,6 +33,7 @@
     , "grunt-html-validation": "~0.1.6"
     , "grunt-jekyll": "~0.4.0"
     , "grunt-recess": "~0.5.0"
+    , "grunt-saucelabs": "~4.1.2"
     , "grunt-sed": "~0.1.1"
     , "regexp-quote": "~0.0.0"
   }