diff options
author | Yuji Yaginuma <yuuji.yaginuma@gmail.com> | 2018-10-19 13:27:25 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-19 13:27:25 +0900 |
commit | d1970596664aa72f9e5ae10b2e4f35cc3c4099dd (patch) | |
tree | c7f006db3e3ea3cc638d2004f27420b12240676f | |
parent | f8a2304fdebd37f12b894b7c61f63a3e75f0da67 (diff) | |
parent | 7eba11373c8e986516a848aa08ec21ac8ca592db (diff) | |
download | rails-d1970596664aa72f9e5ae10b2e4f35cc3c4099dd.tar.gz rails-d1970596664aa72f9e5ae10b2e4f35cc3c4099dd.tar.bz2 rails-d1970596664aa72f9e5ae10b2e4f35cc3c4099dd.zip |
Merge pull request #34256 from y-yagi/make_aj_integration_tests_work_on_ci_2
Make AJ integration tests work in CI
-rw-r--r-- | .travis.yml | 23 | ||||
-rw-r--r-- | activejob/test/support/integration/adapters/backburner.rb | 3 | ||||
-rw-r--r-- | activejob/test/support/integration/adapters/que.rb | 3 | ||||
-rw-r--r-- | activejob/test/support/integration/adapters/queue_classic.rb | 3 | ||||
-rw-r--r-- | activejob/test/support/integration/adapters/sneakers.rb | 16 |
5 files changed, 30 insertions, 18 deletions
diff --git a/.travis.yml b/.travis.yml index f703ed0f90..3db4e9cd94 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,8 +36,6 @@ before_install: - "rm ${BUNDLE_GEMFILE}.lock" - "travis_retry gem update --system" - "travis_retry gem install bundler" - - "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/kr/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)" - - "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd" - "[[ -z $encrypted_0fb9444d0374_key && -z $encrypted_0fb9444d0374_iv ]] || openssl aes-256-cbc -K $encrypted_0fb9444d0374_key -iv $encrypted_0fb9444d0374_iv -in activestorage/test/service/configurations.yml.enc -out activestorage/test/service/configurations.yml -d" - "[[ $GEM != 'av:ujs' ]] || nvm install node" - "[[ $GEM != 'av:ujs' ]] || node --version" @@ -101,23 +99,44 @@ matrix: - rvm: 2.5.1 env: "GEM=av:ujs" - rvm: 2.4.4 + sudo: required env: "GEM=aj:integration" services: - memcached - redis-server - rabbitmq + before_install: + - sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/*/main/pg_hba.conf + - "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf" + - "sudo service postgresql restart 10" + - "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/kr/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)" + - "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd" - rvm: 2.5.1 + sudo: required env: "GEM=aj:integration" services: - memcached - redis-server - rabbitmq + before_install: + - sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/*/main/pg_hba.conf + - "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf" + - "sudo service postgresql restart 10" + - "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/kr/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)" + - "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd" - rvm: ruby-head + sudo: required env: "GEM=aj:integration" services: - memcached - redis-server - rabbitmq + before_install: + - sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/*/main/pg_hba.conf + - "sudo sed -i 's/port = 5433/port = 5432/' /etc/postgresql/10/main/postgresql.conf" + - "sudo service postgresql restart 10" + - "[ -f /tmp/beanstalkd-1.10/Makefile ] || (curl -L https://github.com/kr/beanstalkd/archive/v1.10.tar.gz | tar xz -C /tmp)" + - "pushd /tmp/beanstalkd-1.10 && make && (./beanstalkd &); popd" - rvm: 2.4.4 env: "GEM=ar:mysql2" sudo: required diff --git a/activejob/test/support/integration/adapters/backburner.rb b/activejob/test/support/integration/adapters/backburner.rb index eb179011d9..1163ae8178 100644 --- a/activejob/test/support/integration/adapters/backburner.rb +++ b/activejob/test/support/integration/adapters/backburner.rb @@ -8,7 +8,8 @@ module BackburnerJobsManager end unless can_run? puts "Cannot run integration tests for backburner. To be able to run integration tests for backburner you need to install and start beanstalkd.\n" - exit + status = ENV["CI"] ? false : true + exit status end end diff --git a/activejob/test/support/integration/adapters/que.rb b/activejob/test/support/integration/adapters/que.rb index 2e7d327b37..f231e5e12d 100644 --- a/activejob/test/support/integration/adapters/que.rb +++ b/activejob/test/support/integration/adapters/que.rb @@ -32,7 +32,8 @@ module QueJobsManager rescue Sequel::DatabaseConnectionError puts "Cannot run integration tests for que. To be able to run integration tests for que you need to install and start postgresql.\n" - exit + status = ENV["CI"] ? false : true + exit status end def stop_workers diff --git a/activejob/test/support/integration/adapters/queue_classic.rb b/activejob/test/support/integration/adapters/queue_classic.rb index dbbdc12b9d..2b5375461a 100644 --- a/activejob/test/support/integration/adapters/queue_classic.rb +++ b/activejob/test/support/integration/adapters/queue_classic.rb @@ -30,7 +30,8 @@ module QueueClassicJobsManager rescue PG::ConnectionBad puts "Cannot run integration tests for queue_classic. To be able to run integration tests for queue_classic you need to install and start postgresql.\n" - exit + status = ENV["CI"] ? false : true + exit status end def stop_workers diff --git a/activejob/test/support/integration/adapters/sneakers.rb b/activejob/test/support/integration/adapters/sneakers.rb index 965e6e2e6c..eb8d4cc2d5 100644 --- a/activejob/test/support/integration/adapters/sneakers.rb +++ b/activejob/test/support/integration/adapters/sneakers.rb @@ -1,19 +1,8 @@ # frozen_string_literal: true require "sneakers/runner" -require "sneakers/publisher" require "timeout" -module Sneakers - class Publisher - def safe_ensure_connected - @mutex.synchronize do - ensure_connection! unless connected? - end - end - end -end - module SneakersJobsManager def setup ActiveJob::Base.queue_adapter = :sneakers @@ -29,7 +18,8 @@ module SneakersJobsManager log: Rails.root.join("log/sneakers.log").to_s unless can_run? puts "Cannot run integration tests for sneakers. To be able to run integration tests for sneakers you need to install and start rabbitmq.\n" - exit + status = ENV["CI"] ? false : true + exit status end end @@ -79,7 +69,7 @@ module SneakersJobsManager def bunny_publisher @bunny_publisher ||= begin p = ActiveJob::QueueAdapters::SneakersAdapter::JobWrapper.send(:publisher) - p.safe_ensure_connected + p.ensure_connection! p end end |