Switch from Appraisal to Roadshow, bump versions, add 5.1
The Appraisal build was becoming really annoying to maintain, since there's no one version of Ruby that can run the specs across all supported versions of Rails. Roadshow is a tool that's similar to Appraisal but uses Docker to test each version in an isolated environment with the appropriate version of Ruby, at the cost of having to maintain the Gemfiles manually.
This commit is contained in:
parent
be97a215a4
commit
5274190e4c
|
@ -4,4 +4,4 @@ Gemfile.lock
|
|||
pkg/*
|
||||
spec/log
|
||||
spec/tmp
|
||||
gemfiles/*.lock
|
||||
scenarios/*.lock
|
||||
|
|
40
Appraisals
40
Appraisals
|
@ -1,40 +0,0 @@
|
|||
appraise "rails30" do
|
||||
gem "rails", "3.0.20"
|
||||
gem "sqlite3"
|
||||
end
|
||||
|
||||
appraise "rails31" do
|
||||
gem "rails", "3.1.12"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
end
|
||||
|
||||
appraise "rails32" do
|
||||
gem "rails", "3.2.21"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
end
|
||||
|
||||
appraise "rails40" do
|
||||
gem "rails", "4.0.13"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
end
|
||||
|
||||
appraise "rails41" do
|
||||
gem "rails", "4.1.9"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
end
|
||||
|
||||
appraise "rails42" do
|
||||
gem "rails", "4.2.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
end
|
||||
|
||||
appraise "rails50" do
|
||||
gem "rails", github: "rails/rails"
|
||||
gem 'arel', github: "rails/arel"
|
||||
gem "sqlite3"
|
||||
end
|
26
Readme.md
26
Readme.md
|
@ -88,15 +88,27 @@ end
|
|||
|
||||
# Developing and Testing
|
||||
|
||||
To generate Gemfiles for Rails 3.0, 3.1, 3.2, 4.0, 4.1, and 4.2, run `rake
|
||||
appraisal:gemfiles appraisal:install`.
|
||||
This repo uses [Roadshow] to generate a [Docker Compose] file for each
|
||||
supported version of Rails (with a compatible version of Ruby for each one).
|
||||
|
||||
You can then run the tests across all four versions with `rake appraisal`. You
|
||||
can also manually run the Rails console and server with `rake appraisal
|
||||
console` and `rake appraisal server`.
|
||||
To run specs across all versions, you can either [get the Roadshow tool] and
|
||||
run `roadshow run`, or use Docker Compose directly:
|
||||
|
||||
For a specific version of Rails, use `rake appraisal:rails30`, `rake
|
||||
appraisal:rails31`, `rake appraisal:rails32`, etc.
|
||||
```
|
||||
$ for fn in scenarios/*.docker-compose-yml; do docker-compose -f $fn run --rm scenario; done
|
||||
```
|
||||
|
||||
You can also manually run the Rails console and server on each version with
|
||||
`roadshow run rake console` and `roadshow run rake server`, or run them on a
|
||||
specific version with, e.g., `roadshow run -s rails40 rake console`.
|
||||
|
||||
To update the set of scenarios, edit `scenarios.yml` and run `roadshow
|
||||
generate`, although the Gemfiles in the `scenarios` directory need to be
|
||||
maintained manually.
|
||||
|
||||
[Roadshow]: https://github.com/rf-/roadshow
|
||||
[Docker Compose]: https://docs.docker.com/compose/
|
||||
[get the Roadshow tool]: https://github.com/rf-/roadshow/releases
|
||||
|
||||
# Alternative
|
||||
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "4.0.13"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -1,9 +0,0 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", :github => "rails/rails"
|
||||
gem "arel", :github => "rails/arel"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -0,0 +1,27 @@
|
|||
project: pryrails
|
||||
|
||||
shared:
|
||||
from: ruby:2.4
|
||||
cmd: "(bundle check || bundle install) && bundle exec rake"
|
||||
service:
|
||||
volumes:
|
||||
- bundle_{{scenario_name}}:/usr/local/bundle
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/{{scenario_name}}.gemfile
|
||||
volumes:
|
||||
bundle_{{scenario_name}}:
|
||||
|
||||
scenarios:
|
||||
rails30:
|
||||
from: ruby:2.0
|
||||
rails31:
|
||||
from: ruby:2.0
|
||||
rails32:
|
||||
from: ruby:2.0
|
||||
rails40:
|
||||
from: ruby:2.3
|
||||
rails41:
|
||||
from: ruby:2.3
|
||||
rails42: {}
|
||||
rails50: {}
|
||||
rails51: {}
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails30.dockerfile
|
||||
image: pryrails_scenario_rails30
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails30:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails30.gemfile
|
||||
volumes:
|
||||
bundle_rails30: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.0
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -1,8 +1,7 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "3.0.20"
|
||||
gem "rails", "~> 3.0.0"
|
||||
gem "sqlite3"
|
||||
gem "test-unit"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails31.dockerfile
|
||||
image: pryrails_scenario_rails31
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails31:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails31.gemfile
|
||||
volumes:
|
||||
bundle_rails31: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.0
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -1,9 +1,8 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "3.1.12"
|
||||
gem "rails", "~> 3.1.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
gem "test-unit"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails32.dockerfile
|
||||
image: pryrails_scenario_rails32
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails32:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails32.gemfile
|
||||
volumes:
|
||||
bundle_rails32: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.0
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -1,9 +1,8 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "3.2.21"
|
||||
gem "rails", "~> 3.2.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
gem "test-unit"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails40.dockerfile
|
||||
image: pryrails_scenario_rails40
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails40:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails40.gemfile
|
||||
volumes:
|
||||
bundle_rails40: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.3
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -0,0 +1,6 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "~> 4.0.0"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails41.dockerfile
|
||||
image: pryrails_scenario_rails41
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails41:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails41.gemfile
|
||||
volumes:
|
||||
bundle_rails41: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.3
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -1,8 +1,6 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "4.1.9"
|
||||
gem "rails", "~> 4.1.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails42.dockerfile
|
||||
image: pryrails_scenario_rails42
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails42:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails42.gemfile
|
||||
volumes:
|
||||
bundle_rails42: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.4
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -1,8 +1,6 @@
|
|||
# This file was generated by Appraisal
|
||||
|
||||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "4.2.0"
|
||||
gem "rails", "~> 4.2.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails50.dockerfile
|
||||
image: pryrails_scenario_rails50
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails50:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails50.gemfile
|
||||
volumes:
|
||||
bundle_rails50: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.4
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -0,0 +1,7 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "~> 5.0.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
|
@ -0,0 +1,15 @@
|
|||
---
|
||||
version: "2"
|
||||
services:
|
||||
scenario:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: scenarios/rails51.dockerfile
|
||||
image: pryrails_scenario_rails51
|
||||
volumes:
|
||||
- "..:/scenario"
|
||||
- "bundle_rails51:/usr/local/bundle"
|
||||
environment:
|
||||
BUNDLE_GEMFILE: scenarios/rails51.gemfile
|
||||
volumes:
|
||||
bundle_rails51: {}
|
|
@ -0,0 +1,5 @@
|
|||
FROM ruby:2.4
|
||||
RUN mkdir -p /scenario
|
||||
WORKDIR /scenario
|
||||
ENV LANG=C.UTF-8
|
||||
CMD (bundle check || bundle install) && bundle exec rake
|
|
@ -0,0 +1,7 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "~> 5.1.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
Loading…
Reference in New Issue