Skip to content

Commit 156f3a4

Browse files
authored
Merge pull request #4928 from DataDog/sarahchen6/add-jruby-10.0
Add JRuby 10.0 to CI
2 parents 3ae42e5 + b84a55d commit 156f3a4

File tree

121 files changed

+12362
-36
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+12362
-36
lines changed

.github/workflows/lock-dependency.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ jobs:
6060
version: '9.3'
6161
- name: jruby
6262
version: '9.2'
63+
- name: jruby
64+
version: '10.0'
6365
container:
6466
image: ghcr.io/datadog/images-rb/engines/${{ matrix.engine.name }}:${{ matrix.engine.version }}-gnu-gcc
6567
env:

.github/workflows/test.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ jobs:
9696
version: "2.5"
9797
alias: ruby-25
9898

99+
jruby-100:
100+
name: "JRuby 10.0"
101+
uses: ./.github/workflows/_unit_test.yml
102+
with:
103+
engine: jruby
104+
version: "10.0"
105+
alias: jruby-100
106+
99107
jruby-94:
100108
name: "JRuby 9.4"
101109
uses: ./.github/workflows/_unit_test.yml
@@ -146,6 +154,7 @@ jobs:
146154
- ruby-27
147155
- ruby-26
148156
- ruby-25
157+
- jruby-100
149158
- jruby-94
150159
- jruby-93
151160
- jruby-92
@@ -192,6 +201,7 @@ jobs:
192201
- ruby-27
193202
- ruby-26
194203
- ruby-25
204+
- jruby-100
195205
- jruby-94
196206
- jruby-93
197207
- jruby-92
@@ -231,6 +241,7 @@ jobs:
231241
- ruby-27
232242
- ruby-26
233243
- ruby-25
244+
- jruby-100
234245
- jruby-94
235246
- jruby-93
236247
- jruby-92

.github/workflows/update-latest-dependency.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ jobs:
4646
version: '9.3'
4747
- name: jruby
4848
version: '9.2'
49+
- name: jruby
50+
version: '10.0'
4951
container:
5052
image: ghcr.io/datadog/images-rb/engines/${{ matrix.engine.name }}:${{ matrix.engine.version }}-gnu-gcc
5153
steps:

Matrixfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@
131131
'activesupport' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ 3.5 / ✅ jruby'
132132
},
133133
'mongodb' => {
134+
# TODO: JRuby 10.0 - Note that JRuby 10.0 tests are currently skipped at the spec-level due to a bug with the bson_ruby gem.
134135
'mongo-latest' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ 3.5 / ✅ jruby',
135136
'mongo-min' => '✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ 3.4 / ✅ 3.5 / ✅ jruby',
136137
},

appraisal/generate.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# This implementation provides a much easier interface to customize our needs,
99
# while still using the same Appraisal formatting.
1010
#
11-
# For example, it solves the incompatbility of `eval_gemfile` from `Bundler::DSL`
11+
# For example, it solves the incompatibility of `eval_gemfile` from `Bundler::DSL`
1212
#
1313
# Usage: `bundle exec ruby appraisal/generate.rb`
1414

appraisal/jruby-10.0.rb

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
appraise 'rails61-mysql2' do
2+
gem 'rails', '~> 6.1.0'
3+
gem 'activerecord-jdbcmysql-adapter', '~> 61.0', platform: :jruby
4+
gem 'sprockets', '< 4'
5+
gem 'lograge', '~> 0.11'
6+
gem 'net-smtp'
7+
end
8+
9+
appraise 'rails61-postgres' do
10+
gem 'rails', '~> 6.1.0'
11+
gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
12+
gem 'sprockets', '< 4'
13+
gem 'lograge', '~> 0.11'
14+
gem 'net-smtp'
15+
end
16+
17+
appraise 'rails61-postgres-redis' do
18+
gem 'rails', '~> 6.1.0'
19+
gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
20+
gem 'redis', '~> 4'
21+
gem 'sprockets', '< 4'
22+
gem 'lograge', '~> 0.11'
23+
gem 'net-smtp'
24+
end
25+
26+
appraise 'rails61-postgres-sidekiq' do
27+
gem 'rails', '~> 6.1.0'
28+
gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
29+
gem 'sidekiq', '>= 6.1.2'
30+
gem 'sprockets', '< 4'
31+
gem 'lograge', '~> 0.11'
32+
gem 'rails_semantic_logger', '~> 4.0'
33+
gem 'net-smtp'
34+
end
35+
36+
appraise 'rails61-semantic-logger' do
37+
gem 'rails', '~> 6.1.0'
38+
gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
39+
gem 'sprockets', '< 4'
40+
gem 'rails_semantic_logger', '~> 4.0'
41+
gem 'net-smtp'
42+
end
43+
44+
appraise 'rails-old-redis' do
45+
# All dependencies except Redis < 4 are not important, they are just required to run Rails tests.
46+
gem 'redis', '< 4'
47+
gem 'rails', '~> 6.1.0'
48+
gem 'activerecord-jdbcpostgresql-adapter', platform: :jruby
49+
gem 'sprockets', '< 4'
50+
gem 'lograge', '~> 0.11'
51+
gem 'net-smtp'
52+
end
53+
54+
appraise 'resque2-redis3' do
55+
gem 'redis', '< 4.0'
56+
gem 'resque', '>= 2.0'
57+
end
58+
59+
appraise 'resque2-redis4' do
60+
gem 'redis', '>= 4.0'
61+
gem 'resque', '>= 2.0'
62+
end
63+
64+
appraise 'aws' do
65+
gem 'aws-sdk'
66+
gem 'shoryuken'
67+
gem 'ostruct'
68+
end
69+
70+
appraise 'http' do
71+
gem 'ethon'
72+
gem 'http', '~> 4' # TODO: Completely broken with this JRuby version, this has not be validate on CI
73+
gem 'httpclient'
74+
gem 'typhoeus'
75+
end
76+
77+
build_coverage_matrix('stripe', 7..12, min: '5.15.0')
78+
build_coverage_matrix('opensearch', [2], gem: 'opensearch-ruby')
79+
build_coverage_matrix('elasticsearch', [7])
80+
build_coverage_matrix('faraday')
81+
build_coverage_matrix('excon')
82+
build_coverage_matrix('mongo', min: '2.20.0')
83+
build_coverage_matrix('rest-client')
84+
build_coverage_matrix('dalli', [2])
85+
build_coverage_matrix('karafka', min: '2.3.0')
86+
87+
appraise 'karafka-min' do
88+
gem 'karafka', '= 2.3.0'
89+
end
90+
91+
# NOTE: JRuby bundler failed to install some dependencies https://github.com/ruby/psych/issues/700
92+
# and it could be re-enabled when upstream fix the issue
93+
# build_coverage_matrix('devise', min: '3.2.1')
94+
95+
appraise 'relational_db' do
96+
gem 'activerecord', '~> 6.1.0'
97+
gem 'delayed_job'
98+
gem 'delayed_job_active_record'
99+
gem 'makara', '>= 0.6.0.pre' # Ruby 3 requires >= 0.6.0, which is currently in pre-release: https://rubygems.org/gems/makara/versions
100+
gem 'activerecord-jdbcmysql-adapter', '~> 61.0', platform: :jruby
101+
gem 'activerecord-jdbcpostgresql-adapter', '~> 61.0', platform: :jruby
102+
gem 'sequel'
103+
gem 'jdbc-sqlite3', '>= 3.28', platform: :jruby
104+
end
105+
106+
appraise 'activesupport' do
107+
gem 'activesupport', '~> 7'
108+
109+
gem 'actionpack'
110+
gem 'actionview'
111+
gem 'active_model_serializers', '>= 0.10.0'
112+
gem 'grape'
113+
gem 'lograge'
114+
gem 'racecar', '>= 0.3.5'
115+
gem 'ruby-kafka', '>= 0.7.10'
116+
end
117+
118+
appraise 'contrib' do
119+
gem 'concurrent-ruby'
120+
121+
gem 'rack-test' # Dev dependencies for testing rack-based code
122+
gem 'rackup'
123+
gem 'rake', '>= 12.3'
124+
gem 'resque'
125+
gem 'roda', '>= 2.0.0'
126+
gem 'semantic_logger', '~> 4.0'
127+
gem 'sidekiq', '~> 7'
128+
gem 'sneakers', '>= 2.12.0'
129+
gem 'sucker_punch'
130+
gem 'que', '>= 1.0.0'
131+
end
132+
133+
[
134+
'2.3',
135+
'2.2',
136+
'2.1',
137+
'2.0',
138+
'1.13',
139+
].each do |v|
140+
appraise "graphql-#{v}" do
141+
gem 'rails', '~> 6.1.0'
142+
gem 'graphql', "~> #{v}.0"
143+
gem 'sprockets', '< 4'
144+
gem 'lograge', '~> 0.11'
145+
end
146+
end
147+
148+
build_coverage_matrix('redis', [3, 4])
149+
build_coverage_matrix('rack', 1..2, meta: { 'rack-contrib' => nil, 'rack-test' => nil })
150+
151+
[2, 3, 4].each do |n|
152+
appraise "sinatra-#{n}" do
153+
gem 'sinatra', "~> #{n}"
154+
gem 'sinatra-contrib', "~> #{n}"
155+
gem 'rack-contrib'
156+
gem 'rack-test' # Dev dependencies for testing rack-based code
157+
end
158+
end
159+
160+
appraise 'contrib-old' do
161+
gem 'presto-client', '>= 0.5.14' # Renamed to trino-client in >= 1.0
162+
end
163+
164+
appraise 'core-old' do
165+
gem 'dogstatsd-ruby', '~> 4'
166+
end

docker-compose.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,22 @@ services:
225225
- .:/app
226226
- bundle-jruby-9.4:/usr/local/bundle
227227
- "ddagent_var_run:${TEST_DDAGENT_VAR_RUN}"
228+
tracer-jruby-10.0:
229+
image: ghcr.io/datadog/images-rb/engines/jruby:10.0-gnu-gcc
230+
working_dir: /app
231+
command: /bin/bash
232+
depends_on: *common-depends-on
233+
links: *common-links
234+
env_file: ./.env
235+
environment:
236+
<<: *common-environment
237+
BUNDLE_GEMFILE: /app/jruby-10.0.gemfile
238+
stdin_open: true
239+
tty: true
240+
volumes:
241+
- .:/app
242+
- bundle-jruby-10.0:/usr/local/bundle
243+
- "ddagent_var_run:${TEST_DDAGENT_VAR_RUN}"
228244
ddagent:
229245
image: datadog/agent
230246
environment:
@@ -349,6 +365,7 @@ volumes:
349365
bundle-jruby-9.2:
350366
bundle-jruby-9.3:
351367
bundle-jruby-9.4:
368+
bundle-jruby-10.0:
352369
ddagent_var_run:
353370
# Temporary folder used while compiling the profiling native extension. We place this in a volume to avoid the
354371
# massive performance hit (seconds to minutes) that we get when the tmp folder is shared with the host on macOS.

gemfiles/jruby_10.0_activesupport.gemfile

Lines changed: 44 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)