diff options
author | Jon Moss <me@jonathanmoss.me> | 2016-05-09 15:42:28 -0400 |
---|---|---|
committer | Jeremy Daer <jeremydaer@gmail.com> | 2016-05-25 09:21:28 -0700 |
commit | 8cfce058d9d002526fd93e66957f8359985c92bf (patch) | |
tree | f8fcab1332fc01d87196c4233d32f8d03ce6a16b | |
parent | bf219714dce494f5b69cb7dd9b8c43a68a4988da (diff) | |
download | rails-8cfce058d9d002526fd93e66957f8359985c92bf.tar.gz rails-8cfce058d9d002526fd93e66957f8359985c92bf.tar.bz2 rails-8cfce058d9d002526fd93e66957f8359985c92bf.zip |
CI: run Action Cable browser tests in Sauce Labs
Allow failures until test runs are consistently stable, not hanging.
Closes #24943.
Signed-off-by: Jeremy Daer <jeremydaer@gmail.com>
-rw-r--r-- | .travis.yml | 9 | ||||
-rw-r--r-- | Gemfile | 2 | ||||
-rw-r--r-- | Gemfile.lock | 23 | ||||
-rw-r--r-- | actioncable/Rakefile | 8 | ||||
-rw-r--r-- | actioncable/blade.yml | 21 | ||||
-rwxr-xr-x | ci/travis.rb | 1 |
6 files changed, 61 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml index 5c9e4b51f4..461bd172c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,11 @@ before_install: before_script: - bundle update + # Set Sauce Labs username and access key. Obfuscated, purposefully not encrypted. + # Decodes to e.g. `export VARIABLE=VALUE` + - $(base64 --decode <<< "ZXhwb3J0IFNBVUNFX0FDQ0VTU19LRVk9YTAzNTM0M2YtZTkyMi00MGIzLWFhM2MtMDZiM2VhNjM1YzQ4") + - $(base64 --decode <<< "ZXhwb3J0IFNBVUNFX1VTRVJOQU1FPXJ1YnlvbnJhaWxz") + script: 'ci/travis.rb' env: @@ -36,6 +41,8 @@ env: - "GEM=ap" - "GEM=ac" - "GEM=ac FAYE=1" + - "GEM=ac:integration" + - "GEM=ac:integration FAYE=1" - "GEM=am,amo,as,av,aj" - "GEM=as PRESERVE_TIMEZONES=1" - "GEM=ar:mysql2" @@ -65,6 +72,8 @@ matrix: allow_failures: - rvm: ruby-head - rvm: jruby-9.0.5.0 + - env: "GEM=ac:integration" + - env: "GEM=ac:integration FAYE=1" fast_finish: true notifications: @@ -64,7 +64,9 @@ group :cable do gem 'redis', require: false gem 'faye-websocket', require: false + gem 'blade', '~> 0.5.5', require: false + gem 'blade-sauce_labs_plugin', github: 'javan/blade-sauce_labs_plugin', require: false end # Add your own local bundler stuff. diff --git a/Gemfile.lock b/Gemfile.lock index 4a9ac10244..41fd2197e3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -22,6 +22,15 @@ GIT delayed_job (>= 3.0, < 5) GIT + remote: git://github.com/javan/blade-sauce_labs_plugin.git + revision: dd4230c556aaa19b62cca757d6faeb2bb6bf95e7 + specs: + blade-sauce_labs_plugin (0.5.1) + childprocess + faraday + selenium-webdriver + +GIT remote: git://github.com/rails/coffee-rails.git revision: aa2e623cbda4f3c789a0a15d1f707239e68f5736 specs: @@ -134,6 +143,8 @@ GEM bunny (2.2.2) amq-protocol (>= 2.0.1) byebug (8.2.5) + childprocess (0.5.9) + ffi (~> 1.0, >= 1.0.11) coffee-script (2.4.1) coffee-script-source execjs @@ -161,6 +172,8 @@ GEM eventmachine (1.2.0.1-x64-mingw32) eventmachine (1.2.0.1-x86-mingw32) execjs (2.6.0) + faraday (0.9.2) + multipart-post (>= 1.2, < 3) faye (1.1.2) cookiejar (>= 0.3.0) em-http-request (>= 0.3.0) @@ -206,6 +219,7 @@ GEM metaclass (~> 0.0.1) mono_logger (1.1.0) multi_json (1.12.0) + multipart-post (2.0.0) mustache (1.0.3) mysql2 (0.4.4) mysql2 (0.4.4-x64-mingw32) @@ -262,10 +276,15 @@ GEM redis (~> 3.0) resque (~> 1.25) rufus-scheduler (~> 3.2) + rubyzip (1.2.0) rufus-scheduler (3.2.1) sdoc (0.4.1) json (~> 1.7, >= 1.7.7) rdoc (~> 4.0) + selenium-webdriver (2.53.0) + childprocess (~> 0.5) + rubyzip (~> 1.0) + websocket (~> 1.0) sequel (4.34.0) serverengine (1.5.11) sigdump (~> 0.2.2) @@ -317,6 +336,7 @@ GEM json nokogiri wdm (0.1.1) + websocket (1.2.3) websocket-driver (0.6.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.2) @@ -334,6 +354,7 @@ DEPENDENCIES bcrypt (~> 3.1.11) benchmark-ips blade (~> 0.5.5) + blade-sauce_labs_plugin! byebug coffee-rails! dalli (>= 2.2.1) @@ -378,4 +399,4 @@ DEPENDENCIES wdm (>= 0.1.0) BUNDLED WITH - 1.11.2 + 1.12.4 diff --git a/actioncable/Rakefile b/actioncable/Rakefile index b0e9c0a4a8..a72142deb5 100644 --- a/actioncable/Rakefile +++ b/actioncable/Rakefile @@ -24,8 +24,12 @@ namespace :test do end or raise "Failures" end - task :javascript do - Blade.start(interface: :runner) + task :integration do + if ENV['CI'] + Blade.start(interface: :ci) + else + Blade.start(interface: :runner) + end end end diff --git a/actioncable/blade.yml b/actioncable/blade.yml index 9cdb318c97..e21151099a 100644 --- a/actioncable/blade.yml +++ b/actioncable/blade.yml @@ -11,3 +11,24 @@ build: - action_cable.js path: lib/assets/compiled clean: true + +plugins: + sauce_labs: + browsers: + Google Chrome: + os: Mac, Windows + version: -2 + Firefox: + os: Mac, Windows + version: -2 + Safari: + platform: Mac + version: -3 + Microsoft Edge: + version: -2 + Internet Explorer: + version: 11 + iPhone: + version: [9.2, 8.4] + Motorola Droid 4 Emulator: + version: [5.1, 4.4] diff --git a/ci/travis.rb b/ci/travis.rb index 3faef500f2..b8891d6889 100755 --- a/ci/travis.rb +++ b/ci/travis.rb @@ -148,6 +148,7 @@ ENV['GEM'].split(',').each do |gem| next if ENV['TRAVIS_PULL_REQUEST'] && ENV['TRAVIS_PULL_REQUEST'] != 'false' && isolated next if gem == 'railties' && isolated next if gem == 'ac' && isolated + next if gem == 'ac:integration' && isolated next if gem == 'aj:integration' && isolated next if gem == 'guides' && isolated |