mirror of
https://github.com/pry/pry-rails.git
synced 2022-11-09 12:36:03 -05:00
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
30 changed files with 235 additions and 81 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -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 => "../"
|
27
scenarios.yml
Normal file
27
scenarios.yml
Normal file
|
@ -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: {}
|
15
scenarios/rails30.docker-compose.yml
Normal file
15
scenarios/rails30.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails30.dockerfile
Normal file
5
scenarios/rails30.dockerfile
Normal file
|
@ -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 => "../"
|
15
scenarios/rails31.docker-compose.yml
Normal file
15
scenarios/rails31.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails31.dockerfile
Normal file
5
scenarios/rails31.dockerfile
Normal file
|
@ -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 => "../"
|
15
scenarios/rails32.docker-compose.yml
Normal file
15
scenarios/rails32.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails32.dockerfile
Normal file
5
scenarios/rails32.dockerfile
Normal file
|
@ -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 => "../"
|
15
scenarios/rails40.docker-compose.yml
Normal file
15
scenarios/rails40.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails40.dockerfile
Normal file
5
scenarios/rails40.dockerfile
Normal file
|
@ -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
|
6
scenarios/rails40.gemfile
Normal file
6
scenarios/rails40.gemfile
Normal file
|
@ -0,0 +1,6 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "~> 4.0.0"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
15
scenarios/rails41.docker-compose.yml
Normal file
15
scenarios/rails41.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails41.dockerfile
Normal file
5
scenarios/rails41.dockerfile
Normal file
|
@ -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"
|
||||
|
15
scenarios/rails42.docker-compose.yml
Normal file
15
scenarios/rails42.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails42.dockerfile
Normal file
5
scenarios/rails42.dockerfile
Normal file
|
@ -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"
|
||||
|
15
scenarios/rails50.docker-compose.yml
Normal file
15
scenarios/rails50.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails50.dockerfile
Normal file
5
scenarios/rails50.dockerfile
Normal file
|
@ -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
|
7
scenarios/rails50.gemfile
Normal file
7
scenarios/rails50.gemfile
Normal file
|
@ -0,0 +1,7 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "~> 5.0.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
15
scenarios/rails51.docker-compose.yml
Normal file
15
scenarios/rails51.docker-compose.yml
Normal file
|
@ -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: {}
|
5
scenarios/rails51.dockerfile
Normal file
5
scenarios/rails51.dockerfile
Normal file
|
@ -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
|
7
scenarios/rails51.gemfile
Normal file
7
scenarios/rails51.gemfile
Normal file
|
@ -0,0 +1,7 @@
|
|||
source "http://rubygems.org"
|
||||
|
||||
gem "rails", "~> 5.1.0"
|
||||
gem "mongoid"
|
||||
gem "sqlite3"
|
||||
|
||||
gemspec :path => "../"
|
Loading…
Add table
Add a link
Reference in a new issue