diff --git a/.travis.yml b/.travis.yml index 3bd3de140e038..5837cf9d7aea3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,14 +4,11 @@ node_js: - '0.10' script: - | - if [ "$TEST_TYPE" = unit ]; then - grunt build && grunt test - else - grunt lint - fi + grunt $TEST_TYPE after_script: - | - if [ "$TEST_TYPE" = unit ] && [ "$SERVER" ]; then + if [ "$TEST_TYPE" = test:full ] && [ "$SERVER" ]; then + grunt build curl \ -F "react=@build/react.js" \ -F "react.min=@build/react.min.js" \ @@ -27,18 +24,31 @@ after_script: fi env: matrix: - - TEST_TYPE=unit + - TEST_TYPE=test:full - TEST_TYPE=lint + - TEST_TYPE=test:coverage + - TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie11 + - TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie10 + - TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie9 + - TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie8 + - TEST_TYPE=test:webdriver:saucelabs:ios + - TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=safari global: # SERVER - secure: qPvsJ46XzGrdIuPA70b55xQNGF8jcK7N1LN5CCQYYocXLa+fBrl+fTE77QvehOPhqwJXcj6kOxI+sY0KrVwV7gmq2XY2HZGWUSCxTN0SZlNIzqPA80Y7G/yOjA4PUt8LKgP+8tptyhTAY56qf+hgW8BoLiKOdztYF2p+3zXOLuA= # SECRET_TOKEN - secure: dkpPW+VnoqC/okhRdV90m36NcyBFhcwEKL3bNFExAwi0dXnFao8RoFlvnwiPlA23h2faROkMIetXlti6Aju08BgUFV+f9aL6vLyU7gUent4Nd3413zf2fwDtXIWIETg6uLnOpSykGKgCAT/hY3Q2oPLqOoY0OxfgnbqwxkxljrE= - - secure: eHMg4yQWJ+5zFxNcjVwpdpcbZCQMaSByqJy0wwQ2XOOMItdCvSfO/fa+mYoVND/9Orsi5kvXC9tx4sYHyth5hLrvO+bghYjiayrbxYYrxso6G/aU8Pttc7s/qk3I4zadLlua1kGy2TauByxS6nt9nUDe0FDaJKA9k1QXVlpq5Ac= - - secure: v65jUPPNBvJg1xhj4cY7wMKinCESUseHsW1d2gp68SluFHHyjWZOvXYXZdABqB/1uNmQxjbUkwkdSNAOn5k7ppjRcRnlAH2uu1xDqXrGp6cW4MfNPchrAe+FcUMtse/3THGJj8SZ9IQWIl+BHv4XASQ7FwqCR8cwlOfhsqdfch8= matrix: + fast_finish: true allow_failures: - env: TEST_TYPE=lint + - env: TEST_TYPE=test:coverage + - env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie11 + - env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie10 + - env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie9 + - env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=ie8 + - env: TEST_TYPE=test:webdriver:saucelabs:ios + - env: TEST_TYPE=test:webdriver:saucelabs BROWSER_NAME=safari notifications: irc: use_notice: true diff --git a/Gruntfile.js b/Gruntfile.js index 823e5f172af6f..49db0447a925a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -109,6 +109,53 @@ module.exports = function(grunt) { 'webdriver-phantomjs', 'webdriver-jasmine:local' ]); + + grunt.registerTask('test:full', [ + 'build:test', + 'build:basic', + + 'connect', + 'webdriver-phantomjs', + 'webdriver-jasmine:local', + + 'sauce-tunnel', + 'webdriver-jasmine:saucelabs_android', + 'webdriver-jasmine:saucelabs_firefox', + 'webdriver-jasmine:saucelabs_chrome' + ]); + + grunt.registerTask('test:webdriver:saucelabs', [ + 'build:test', + 'build:basic', + + 'connect', + 'sauce-tunnel', + 'webdriver-jasmine:saucelabs_' + (process.env.BROWSER_NAME || 'ie8') + ]); + + grunt.registerTask('test:webdriver:saucelabs:ie', [ + 'build:test', + 'build:basic', + + 'connect', + 'sauce-tunnel', + 'webdriver-jasmine:saucelabs_ie8', + 'webdriver-jasmine:saucelabs_ie9', + 'webdriver-jasmine:saucelabs_ie10', + 'webdriver-jasmine:saucelabs_ie11' + ]); + + grunt.registerTask('test:webdriver:saucelabs:ios', [ + 'build:test', + 'build:basic', + + 'connect', + 'sauce-tunnel', + 'webdriver-jasmine:saucelabs_ios6_1', + 'webdriver-jasmine:saucelabs_ios5_1', + 'webdriver-jasmine:saucelabs_ios4' + ]); + grunt.registerTask('test:coverage', [ 'build:test', 'build:withCodeCoverageLogging', diff --git a/grunt/config/complexity.js b/grunt/config/complexity.js index 865c3653737c1..56a85cc191881 100644 --- a/grunt/config/complexity.js +++ b/grunt/config/complexity.js @@ -1,3 +1,4 @@ +"use strict"; var grunt = require('grunt'); module.exports.generic = { diff --git a/grunt/config/webdriver-jasmine.js b/grunt/config/webdriver-jasmine.js index fd4548595c40e..b01660ddeb81c 100644 --- a/grunt/config/webdriver-jasmine.js +++ b/grunt/config/webdriver-jasmine.js @@ -27,9 +27,8 @@ exports.saucelabs = { webdriver: { remote: { /* https://github.com/admc/wd/blob/master/README.md#named-parameters */ - user: process.env.SAUCE_USERNAME, - pwd: process.env.SAUCE_ACCESS_KEY, - + user: process.env.SAUCE_USERNAME || 'React', + pwd: process.env.SAUCE_ACCESS_KEY || '339d32ca-d594-4570-a3c2-94c50a91919b', protocol: 'http:', hostname: 'ondemand.saucelabs.com', port: '80', diff --git a/grunt/tasks/sauce-tunnel.js b/grunt/tasks/sauce-tunnel.js index b762a22a952a3..d785f1f2387e5 100644 --- a/grunt/tasks/sauce-tunnel.js +++ b/grunt/tasks/sauce-tunnel.js @@ -7,12 +7,12 @@ module.exports = function() { var task = this; var shouldStayAliveForever = task.flags.keepalive; - var SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY; + var SAUCE_ACCESS_KEY = process.env.SAUCE_ACCESS_KEY || '339d32ca-d594-4570-a3c2-94c50a91919b'; if (!SAUCE_ACCESS_KEY) { grunt.fatal('Requires the environment variable SAUCE_ACCESS_KEY to be set'); } - var SAUCE_USERNAME = process.env.SAUCE_USERNAME; + var SAUCE_USERNAME = process.env.SAUCE_USERNAME || 'React'; if (!SAUCE_USERNAME) { grunt.fatal('Requires the environment variable SAUCE_USERNAME to be set'); }