Skip to content

Commit

Permalink
Enable GitHub actions build, cleanup gemfiles
Browse files Browse the repository at this point in the history
- We now only test against the latest rails major releases, 4.1 was EOL anyway. (also test against rails 6 from now on)
- Setup a build matrix to test against psql 9, 10, 11 in combination of all rails versions as well as ruby 2.5 and 2.6
  • Loading branch information
siegy22 committed Sep 23, 2019
1 parent 5ddddd5 commit 104ee7f
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 74 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Ruby

on: [pull_request]

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby_version: [2.5.x, 2.6.x]
gemfile: ["4.2", "5.2", "6.0"]
postgres_version: [9, 10, 11]
services:
db:
image: postgres:${{ matrix.postgres_version }}
ports: ['5432:5432']
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v1
- name: Set up Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby_version }}
- name: Test with Rake
env:
PGHOST: 127.0.0.1
PGUSER: postgres
BUNDLE_GEMFILE: spec/gemfiles/Gemfile.${{ matrix.gemfile }}
run: |
sudo apt-get -yqq install libpq-dev postgresql-client
createdb que-test
gem install bundler
bundle install --jobs 4 --retry 3
USE_RAILS=true bundle exec rake test
bundle exec rake test
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ source 'https://rubygems.org'
group :development, :test do
gem 'rake'

gem 'activerecord', '5.2.0.beta2', require: nil
gem 'activejob', '5.2.0.beta2', require: nil
gem 'activerecord', '~> 6.0', require: nil
gem 'activejob', '~> 6.0', require: nil
gem 'sequel', require: nil
gem 'connection_pool', require: nil
gem 'pond', require: nil
Expand Down
3 changes: 1 addition & 2 deletions lib/que/active_job/extensions.spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,8 @@ def execute(*args)

job = QueJob.first
job.update(finished_at: Time.now)
gid = job.to_global_id(app: :test)

execute(job_object: gid.to_s)
execute(job_object: job)

assert_equal(
[{job_object: job}],
Expand Down
23 changes: 0 additions & 23 deletions spec/gemfiles/Gemfile.4.1

This file was deleted.

23 changes: 0 additions & 23 deletions spec/gemfiles/Gemfile.5.1

This file was deleted.

4 changes: 2 additions & 2 deletions spec/gemfiles/Gemfile.5.2
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ gem 'que', path: '../..'
group :development, :test do
gem 'rake'

gem 'activerecord', '~> 5.2.0.beta2', require: nil
gem 'activejob', '~> 5.2.0.beta2', require: nil
gem 'activerecord', '~> 5.2', require: nil
gem 'activejob', '~> 5.2', require: nil
gem 'sequel', require: nil
gem 'connection_pool', require: nil
gem 'pond', require: nil
Expand Down
4 changes: 2 additions & 2 deletions spec/gemfiles/Gemfile.5.0 → spec/gemfiles/Gemfile.6.0
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ gem 'que', path: '../..'
group :development, :test do
gem 'rake'

gem 'activerecord', '~> 5.0.0', require: nil
gem 'activejob', '~> 5.0.0', require: nil
gem 'activerecord', '~> 6.0', require: nil
gem 'activejob', '~> 6.0', require: nil
gem 'sequel', require: nil
gem 'connection_pool', require: nil
gem 'pond', require: nil
Expand Down
35 changes: 15 additions & 20 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,12 @@
# in some spec runs.
if ENV['USE_RAILS'] == 'true'
require 'active_record'
require 'active_job'

begin
require 'active_job'
ActiveJob::Base.queue_adapter = :que
ActiveJob::Base.logger = nil

ActiveJob::Base.queue_adapter = :que
ActiveJob::Base.logger = nil

# require 'que/active_job/extensions'
rescue LoadError
# We're on an old Gemfile where ActiveJob isn't available - no biggie.
end
# require 'que/active_job/extensions'
end

require 'que'
Expand Down Expand Up @@ -89,19 +84,18 @@
sequel: SEQUEL_TEST_DB,
pond: Pond.new(&NEW_PG_CONNECTION),
connection_pool: ConnectionPool.new(&NEW_PG_CONNECTION),
}.
each_with_object({}) do |(name, source), hash|
}.each_with_object({}) do |(name, source), hash|
Que.connection = source
hash[name] = Que.pool
end

if ENV['CI']
if ENV['GITHUB_ACTIONS']
puts "\n" + [
"Ruby: #{RUBY_VERSION}",
"PostgreSQL: #{DB["SHOW server_version"].get}",
"Gemfile: #{ENV['BUNDLE_GEMFILE']}",
"ActiveRecord: #{defined?(ActiveRecord) ? ActiveRecord.version.to_s : 'not loaded'}",
].join("\n")
"Ruby: #{RUBY_VERSION}",
"PostgreSQL: #{DB["SHOW server_version"].get}",
"Gemfile: #{ENV['BUNDLE_GEMFILE']}",
"ActiveRecord: #{defined?(ActiveRecord) ? ActiveRecord.version.to_s : 'not loaded'}",
].join("\n")
end

# ActiveRecord requires ActiveSupport, which affects a bunch of core classes and
Expand All @@ -125,6 +119,7 @@ def locate(gid)
end

GlobalID::Locator.use :test, TestLocator.new
GlobalID.app = :test
end
end

Expand Down Expand Up @@ -152,9 +147,9 @@ def locate(gid)
class QueSpec < Minitest::Spec
include Minitest::Hooks

SPEC_TIMEOUT = (ENV['SPEC_TIMEOUT'] || (ENV['CI'] ? 10 : 600)).to_i
TIME_SKEW = (ENV['SPEC_TIME_SKEW'] || (ENV['CI'] ? 10 : 1)).to_i
SLEEP_UNTIL_TIMEOUT = (ENV['SPEC_SLEEP_TIMEOUT'] || (ENV['CI'] ? 10 : 2)).to_i
SPEC_TIMEOUT = (ENV['SPEC_TIMEOUT'] || (ENV['GITHUB_ACTIONS'] ? 10 : 600)).to_i
TIME_SKEW = (ENV['SPEC_TIME_SKEW'] || (ENV['GITHUB_ACTIONS'] ? 10 : 1)).to_i
SLEEP_UNTIL_TIMEOUT = (ENV['SPEC_SLEEP_TIMEOUT'] || (ENV['GITHUB_ACTIONS'] ? 10 : 2)).to_i

register_spec_type(//, self)

Expand Down

0 comments on commit 104ee7f

Please sign in to comment.