1
- # This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
2
- # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
3
-
4
- # This workflow uses actions that are not certified by GitHub.
5
- # They are provided by a third-party and are governed by
6
- # separate terms of service, privacy policy, and support
7
- # documentation.
8
-
9
- name : Java CI with Maven
1
+ name : Java CI
10
2
11
3
on :
12
4
push :
@@ -21,22 +13,95 @@ jobs:
21
13
22
14
strategy :
23
15
matrix :
16
+ jruby_version : [ '9.3.15.0', '9.4.12.0' ]
24
17
java_version : [ '8', '11', '17', '21' ]
25
- jruby_version : [ '9.3.15.0', '9.4.9.0' ]
26
18
fail-fast : false
27
19
28
20
steps :
29
21
- uses : actions/checkout@v4
22
+
30
23
- name : Set up JDK
31
24
uses : actions/setup-java@v4
32
25
with :
33
26
java-version : ${{ matrix.java_version }}
34
27
distribution : ' temurin'
35
28
cache : maven
29
+
36
30
- name : Build with Maven
37
- run : mvn -B install --file pom.xml - Djruby.version=${{ matrix.jruby_version }}
31
+ run : mvn -B install -Djruby.version=${{ matrix.jruby_version }}
38
32
39
33
# Uploads the full dependency graph to GitHub to improve the quality of Dependabot alerts this repository can receive
40
34
- name : Update dependency graph
41
35
uses : advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6
42
36
if : github.head_ref == 'refs/heads/master' && matrix.java_version == '8' && startsWith(matrix.jruby_version, '9.4')
37
+
38
+ appraisals :
39
+ needs : build
40
+ name : ${{ matrix.appraisal }} appraisal on ${{ matrix.jruby_version }} / Java ${{ matrix.java_version }}
41
+ runs-on : ubuntu-latest
42
+
43
+ strategy :
44
+ matrix :
45
+ jruby_version : [ '9.3.15.0', '9.4.12.0' ]
46
+ java_version : [ '8', '11', '17', '21' ]
47
+ appraisal : [ 'rails50', 'rails52', 'rails60', 'rails61', 'rails70', 'rails71', 'rails72' ]
48
+ exclude :
49
+ - jruby_version : ' 9.3.15.0'
50
+ java_version : ' 8'
51
+ appraisal : ' rails70' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
52
+ - jruby_version : ' 9.3.15.0'
53
+ java_version : ' 8'
54
+ appraisal : ' rails71' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
55
+ - jruby_version : ' 9.3.15.0'
56
+ java_version : ' 8'
57
+ appraisal : ' rails72' # Requires Ruby 3.1 compatibility, which JRuby 9.3 does not support
58
+ - jruby_version : ' 9.3.15.0'
59
+ java_version : ' 11'
60
+ appraisal : ' rails70' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
61
+ - jruby_version : ' 9.3.15.0'
62
+ java_version : ' 11'
63
+ appraisal : ' rails71' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
64
+ - jruby_version : ' 9.3.15.0'
65
+ java_version : ' 11'
66
+ appraisal : ' rails72' # Requires Ruby 3.1 compatibility, which JRuby 9.3 does not support
67
+ - jruby_version : ' 9.3.15.0'
68
+ java_version : ' 17'
69
+ appraisal : ' rails70' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
70
+ - jruby_version : ' 9.3.15.0'
71
+ java_version : ' 17'
72
+ appraisal : ' rails71' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
73
+ - jruby_version : ' 9.3.15.0'
74
+ java_version : ' 17'
75
+ appraisal : ' rails72' # Requires Ruby 3.1 compatibility, which JRuby 9.3 does not support
76
+ - jruby_version : ' 9.3.15.0'
77
+ java_version : ' 21'
78
+ appraisal : ' rails70' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
79
+ - jruby_version : ' 9.3.15.0'
80
+ java_version : ' 21'
81
+ appraisal : ' rails71' # Requires Ruby 2.7 compatibility, which JRuby 9.3 does not support
82
+ - jruby_version : ' 9.3.15.0'
83
+ java_version : ' 21'
84
+ appraisal : ' rails72' # Requires Ruby 3.1 compatibility, which JRuby 9.3 does not support
85
+ fail-fast : false
86
+
87
+ steps :
88
+ - uses : actions/checkout@v4
89
+
90
+ - name : Set up JDK
91
+ uses : actions/setup-java@v4
92
+ with :
93
+ java-version : ${{ matrix.java_version }}
94
+ distribution : ' temurin'
95
+ cache : maven
96
+
97
+ - name : Setup JRuby
98
+ uses : ruby/setup-ruby@v1
99
+ with :
100
+ ruby-version : jruby-${{ matrix.jruby_version }}
101
+ bundler : 2.3.27 # use version that is OK for JRuby 9.3
102
+
103
+ - name : Run appraisal for ${{ matrix.appraisal }}
104
+ env :
105
+ BUNDLE_GEMFILE : gemfiles/${{ matrix.appraisal }}.gemfile
106
+ run : bundle install && bundle exec rake spec
107
+
0 commit comments