Skip to content

Commit

Permalink
Merge branch 'ci-versions'
Browse files Browse the repository at this point in the history
  • Loading branch information
mislav committed Aug 6, 2018
2 parents 4f74fc8 + 797e74d commit b828d8c
Show file tree
Hide file tree
Showing 8 changed files with 119 additions and 15 deletions.
42 changes: 32 additions & 10 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ rvm:
- 1.8.7
- 1.9.3
- 2.1.8
- 2.2.4
- 2.2.7
- 2.3.4
- 2.4.1
- 2.5.1
gemfile:
- Gemfile
- Gemfile.rails3.0
Expand All @@ -22,29 +23,40 @@ gemfile:
- Gemfile.rails4.1
- Gemfile.rails4.2
- Gemfile.rails5.0
- Gemfile.rails5.1
- Gemfile.rails-edge
matrix:
exclude:
- rvm: 1.8.7
gemfile: Gemfile.rails-edge
gemfile: Gemfile
- rvm: 1.9.3
gemfile: Gemfile.rails-edge
gemfile: Gemfile
- rvm: 2.1.8
gemfile: Gemfile.rails-edge
gemfile: Gemfile
- rvm: 2.4.1
gemfile: Gemfile.rails3.0
- rvm: 2.5.1
gemfile: Gemfile.rails3.0
- rvm: 2.4.1
gemfile: Gemfile.rails3.1
- rvm: 2.5.1
gemfile: Gemfile.rails3.1
- rvm: 2.4.1
gemfile: Gemfile.rails3.2
- rvm: 2.4.1
- rvm: 2.5.1
gemfile: Gemfile.rails3.2
- rvm: 1.8.7
gemfile: Gemfile.rails4.0
- rvm: 2.4.1
gemfile: Gemfile.rails4.1
- rvm: 1.8.7
gemfile: Gemfile.rails4.0
- rvm: 2.5.1
gemfile: Gemfile.rails4.0
- rvm: 1.8.7
gemfile: Gemfile.rails4.1
- rvm: 2.4.1
gemfile: Gemfile.rails4.1
- rvm: 2.5.1
gemfile: Gemfile.rails4.1
- rvm: 1.8.7
gemfile: Gemfile.rails4.2
- rvm: 1.8.7
Expand All @@ -54,8 +66,18 @@ matrix:
- rvm: 2.1.8
gemfile: Gemfile.rails5.0
- rvm: 1.8.7
gemfile: Gemfile
gemfile: Gemfile.rails5.1
- rvm: 1.9.3
gemfile: Gemfile
gemfile: Gemfile.rails5.1
- rvm: 2.1.8
gemfile: Gemfile
gemfile: Gemfile.rails5.1
- rvm: 1.8.7
gemfile: Gemfile.rails-edge
- rvm: 1.9.3
gemfile: Gemfile.rails-edge
- rvm: 2.1.8
gemfile: Gemfile.rails-edge
- rvm: 2.2.7
gemfile: Gemfile.rails-edge
- rvm: 2.3.4
gemfile: Gemfile.rails-edge
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source 'https://rubygems.org'

rails_version = '~> 5.1.1'
rails_version = '~> 5.2.0'

gem 'activerecord', rails_version
gem 'actionpack', rails_version
Expand All @@ -16,7 +16,7 @@ gem 'dm-migrations'
gem 'dm-sqlite-adapter'
gem 'mongoid'

gem 'mysql2', '~> 0.4.6', :group => :mysql
gem 'mysql2', '~> 0.5.2', :group => :mysql
gem 'pg', '~> 0.18.4', :group => :pg

group :development do
Expand Down
1 change: 1 addition & 0 deletions Gemfile.rails3.0
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ gem 'sqlite3', '~> 1.3.3'

group :mysql do
gem 'mysql', '~> 2.9.1'
gem 'mysql2', '~> 0.4.6'
gem 'activerecord-mysql2-adapter'
end
gem 'pg', '< 0.18', :group => :pg
Expand Down
2 changes: 1 addition & 1 deletion Gemfile.rails3.1
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ gem 'sqlite3', '~> 1.3.3'

group :mysql do
gem 'mysql', '~> 2.9.1'
gem 'mysql2', '>= 0.3.6'
gem 'mysql2', '~> 0.4.6'
end
gem 'pg', '< 0.18', :group => :pg

Expand Down
2 changes: 1 addition & 1 deletion Gemfile.rails3.2
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ gem 'sqlite3', '~> 1.3.3'

group :mysql do
gem 'mysql', '~> 2.9.1'
gem 'mysql2', '>= 0.3.6'
gem 'mysql2', '~> 0.4.6'
end
gem 'pg', '< 0.18', :group => :pg

Expand Down
19 changes: 19 additions & 0 deletions Gemfile.rails5.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
source 'https://rubygems.org'

rails_version = '~> 5.1.1'

gem 'activerecord', rails_version
gem 'actionpack', rails_version

gem 'rspec', '~> 2.6.0'
gem 'mocha', '~> 0.9.8'

gem 'sqlite3', '~> 1.3.6'

gem 'mysql2', '~> 0.5.2', :group => :mysql
gem 'pg', '~> 0.18.4', :group => :pg

group :development do
gem 'ruby-debug', :platforms => :mri_18
gem 'debugger', :platforms => :mri_19
end
49 changes: 49 additions & 0 deletions script/ci-matrix
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/usr/bin/env ruby
require "yaml"

ci_config = File.expand_path('../../.travis.yml', __FILE__)
data = YAML.load(File.read(ci_config))
ruby_versions = data.fetch('rvm')
gemfiles = data.fetch('gemfile')

requirements = {
'Gemfile.rails3.0' => Gem::Requirement.new('< 2.4'),
'Gemfile.rails3.1' => Gem::Requirement.new('< 2.4'),
'Gemfile.rails3.2' => Gem::Requirement.new('< 2.4'),
'Gemfile.rails4.0' => Gem::Requirement.new(['< 2.4', '>= 1.9']),
'Gemfile.rails4.1' => Gem::Requirement.new(['< 2.4', '>= 1.9']),
'Gemfile.rails4.2' => Gem::Requirement.new('>= 1.9'),
'Gemfile.rails5.0' => Gem::Requirement.new('>= 2.2'),
'Gemfile.rails5.1' => Gem::Requirement.new('>= 2.2'),
'Gemfile' => Gem::Requirement.new('>= 2.2'),
'Gemfile.rails-edge' => Gem::Requirement.new('>= 2.4.1'),
}

commands = {}

commands['excludes'] = -> {
excludes = []
gemfiles.each do |gemfile|
req = requirements.fetch(gemfile)
ruby_versions.each do |version|
unless req.satisfied_by?(Gem::Version.new(version))
excludes << { 'rvm' => version, 'gemfile' => gemfile }
end
end
end

data.fetch('matrix')['exclude'] = excludes
File.open(ci_config, 'w') do |file|
yaml_str = YAML.dump(data)
.sub(/^---\n/, '')
.gsub(/^(\s*-)/, ' \1')
.gsub(/^(\s+gemfile:)/, ' \1')
file.write(yaml_str)
end
}

cmd = commands.fetch(ARGV[0]) do
$stderr.puts "available commands: #{commands.keys.join(', ')}"
exit 1
end
cmd.(*ARGV[1..-1])
15 changes: 14 additions & 1 deletion spec/finders/activerecord_test_connector.rb
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,13 @@ def setup_connection
ActiveRecord::Base.configurations = { db => configuration }
ActiveRecord::Base.establish_connection(db.to_sym)
ActiveRecord::Base.default_timezone = :utc

case configuration['adapter']
when 'mysql'
fix_primary_key(ActiveRecord::ConnectionAdapters::MysqlAdapter)
when 'mysql2'
fix_primary_key(ActiveRecord::ConnectionAdapters::Mysql2Adapter)
end
end

def load_schema
Expand All @@ -90,7 +97,13 @@ def load_schema
$stdout = STDOUT
end
end


def fix_primary_key(adapter_class)
if ActiveRecord::VERSION::STRING < "4.1"
adapter_class::NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY"
end
end

module FixtureSetup
def fixtures(*tables)
table_names = tables.map { |t| t.to_s }
Expand Down

0 comments on commit b828d8c

Please sign in to comment.