Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 19 additions & 6 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,18 @@ env:
# Default versions for canonical release build
DEFAULT_JAVA_VERSION: '8'
DEFAULT_JRUBY_VERSION: '9.4.13.0' # Should match pom.xml <jruby.version> property (AND a version inside the test matrix)
DEFAULT_RACK_VERSION: '~> 2.2' # Should match Gemfile (AND a version inside the test matrix)

jobs:
build:
name: JRuby ${{ matrix.jruby_version }} / Java ${{ matrix.java_version }}
name: Rack ${{ matrix.rack_version }} on JRuby ${{ matrix.jruby_version }} / Java ${{ matrix.java_version }}
runs-on: ubuntu-latest

strategy:
matrix:
jruby_version: [ '9.4.13.0', '10.0.2.0' ]
java_version: [ '8', '11', '17', '21' ]
rack_version: [ '~> 2.2' ]
exclude:
- jruby_version: '10.0.2.0'
java_version: '8' # JRuby 10 requires Java 21
Expand All @@ -41,31 +43,42 @@ jobs:

- name: Build with Maven
run: ./mvnw -B install -Djruby.version=${{ matrix.jruby_version }}
env:
RACK_VERSION: ${{ matrix.rack_version }}

# Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@b275d12641ac2d2108b2cbb7598b154ad2f2cee8 # v5.0.0
if: github.ref == 'refs/heads/master' && matrix.java_version == env.DEFAULT_JAVA_VERSION && matrix.jruby_version == env.DEFAULT_JRUBY_VERSION
if: github.ref == 'refs/heads/master' && matrix.java_version == env.DEFAULT_JAVA_VERSION && matrix.jruby_version == env.DEFAULT_JRUBY_VERSION && matrix.rack_version == env.DEFAULT_RACK_VERSION

appraisals:
needs: build
name: ${{ matrix.appraisal }} appraisal on ${{ matrix.jruby_version }} / Java ${{ matrix.java_version }}
name: ${{ matrix.appraisal }} on ${{ matrix.jruby_version }} / Java ${{ matrix.java_version }}
runs-on: ubuntu-latest

strategy:
matrix:
appraisal: [
'rails50_rack22',
'rails52_rack22',
'rails60_rack22',
'rails61_rack22',
'rails70_rack22',
'rails71_rack22',
'rails72_rack22',
'rails80_rack22',
]
jruby_version: [ '9.4.13.0', '10.0.2.0' ]
java_version: [ '8', '11', '17', '21' ]
appraisal: [ 'rails50', 'rails52', 'rails60', 'rails61', 'rails70', 'rails71', 'rails72', 'rails80' ]
exclude:
- jruby_version: '9.4.13.0'
appraisal: 'rails80' # Requires Ruby 3.4 compatibility, which JRuby 9.4 does not support
- jruby_version: '10.0.2.0'
java_version: '8' # JRuby 10 requires Java 21
- jruby_version: '10.0.2.0'
java_version: '11' # JRuby 10 requires Java 21
- jruby_version: '10.0.2.0'
java_version: '17' # JRuby 10 requires Java 21
- appraisal: 'rails80_rack22'
jruby_version: '9.4.13.0' # Rails 8 requires Ruby 3.4 compatibility, which JRuby 9.4 does not support
fail-fast: false

env:
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ examples/*/nbproject
nbproject
.idea/
.rvmrc
gemfiles/*.lock
49 changes: 21 additions & 28 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -1,31 +1,24 @@
appraise "rails50" do
gem "rails", "~> 5.0.0"
end

appraise "rails52" do
gem "rails", "~> 5.2.0"
end
version_spec = ->(prefix, desc) { "~> #{desc.split(prefix).last.insert(1, ".")}.0" }

appraise "rails60" do
gem "rails", "~> 6.0.0"
end

appraise "rails61" do
gem "rails", "~> 6.1.0"
end
# Rails version -> rack versions in format
# rails#{MAJOR}#{MINOR} => %w[ rack#{MAJOR}#{MINOR} ]
{
"rails50" => %w[rack22],
"rails52" => %w[rack22],
"rails60" => %w[rack22],
"rails61" => %w[rack22],
"rails70" => %w[rack22],
"rails71" => %w[rack22],
"rails72" => %w[rack22],
"rails80" => %w[rack22]
}.each do |rails_desc, rack_descs|
rack_descs.each do |rack_desc|

appraise "rails70" do
gem "rails", "~> 7.0.0"
appraise "#{rails_desc}_#{rack_desc}" do
group :default do
gem "rack", version_spec.call("rack", rack_desc)
gem "rails", version_spec.call("rails", rails_desc)
end
end
end
end

appraise "rails71" do
gem "rails", "~> 7.1.0"
end

appraise "rails72" do
gem "rails", "~> 7.2.0"
end

appraise "rails80" do
gem "rails", "~> 8.0.0"
end
151 changes: 0 additions & 151 deletions gemfiles/rails50.gemfile.lock

This file was deleted.

4 changes: 2 additions & 2 deletions gemfiles/rails50.gemfile → gemfiles/rails50_rack22.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ source "https://rubygems.org"

gem "rake", "~> 13.3", group: :test, require: nil
gem "rspec", group: :test
gem "rails", "~> 5.0.0"

group :default do
gem "rack", "~> 2.2"
gem "rack", "~> 2.2.0"
gem "rails", "~> 5.0.0"
end

group :development do
Expand Down
Loading