Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Ruby 3.4.0-preview2 support for CircleCI tests #4040

Closed
wants to merge 7 commits into from
Closed
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
172 changes: 172 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -432,6 +432,11 @@ job_configuration:
ruby_version: 'ruby-3.3.0'
image: ghcr.io/datadog/images-rb/engines/ruby:3.3
resource_class_to_use: medium+
- &config-3_4
<<: *filters_all_branches_and_tags
ruby_version: 'ruby-3.4.0'
image: ghcr.io/datadog/dd-trace-rb/ruby:3.4.0-dd
resource_class_to_use: medium+
# ADD NEW RUBIES HERE
- &config-jruby-9_2 # More recent release of 9.2
<<: *filters_all_branches_and_tags
Expand Down Expand Up @@ -464,6 +469,7 @@ workflows:
- test-3.1
- test-3.2
- test-3.3
- test-3.4
# ADD NEW RUBIES HERE
- test-jruby-9.2
- test-jruby-9.3
Expand Down Expand Up @@ -512,6 +518,11 @@ workflows:
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.3'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-3.4
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.4'
<<: *filters_all_branches_and_tags
# ⬆️ **Note**: If add/remove test apps above, remember to also copy-paste the changes to the "edge" workflow further down the file.
#
# ADD NEW RUBIES HERE
Expand Down Expand Up @@ -571,10 +582,170 @@ workflows:
name: test-3.3
requires:
- build-3.3
- orb/build:
<<: *config-3_4
name: build-3.4
- orb/test:
<<: *config-3_4
name: test-3.4
requires:
- build-3.4
# ADD NEW RUBIES HERE
- orb/build:
<<: *config-jruby-9_2
name: build-jruby-9.2
- orb/test:
<<: *config-jruby-9_2
name: test-jruby-9.2
requires:
- build-jruby-9.2
- orb/build:
<<: *config-jruby-9_3
name: build-jruby-9.3
- orb/test:
<<: *config-jruby-9_3
name: test-jruby-9.3
requires:
- build-jruby-9.3
- orb/build:
<<: *config-jruby-9_4
name: build-jruby-9.4
- orb/test:
<<: *config-jruby-9_4
name: test-jruby-9.4
requires:
- build-jruby-9.4
# This workflow runs the same `build` and `test` jobs as above on a schedule.
# Tasks related to housekeeping (e.g. prerelease) are not relevant
# to this daily check, as they are not expected to be impacted here.
edge:
triggers:
- schedule:
cron: "0 0 * * 1-5" # Every weekday
filters:
branches:
only:
- master
jobs:
# Integration
- orb/build_and_test_integration:
name: build_and_test_integration-2.5
integration_apps: 'rack rails-five rails-six'
ruby_version: '2.5'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-2.6
integration_apps: 'rack rails-five rails-six sinatra2-classic sinatra2-modular'
ruby_version: '2.6'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-2.7
integration_apps: 'rack rails-five rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '2.7'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-3.0
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.0'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-3.1
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.1'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-3.2
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.2'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-3.3
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.3'
<<: *filters_all_branches_and_tags
- orb/build_and_test_integration:
name: build_and_test_integration-3.4
integration_apps: 'rack rails-six rails-seven sinatra2-classic sinatra2-modular'
ruby_version: '3.4'
<<: *filters_all_branches_and_tags
# ADD NEW RUBIES HERE
- orb/build:
<<: *config-2_5
name: build-2.5
edge: true
- orb/test:
<<: *config-2_5
name: test-2.5
requires:
- build-2.5
- orb/build:
<<: *config-2_6
name: build-2.6
edge: true
- orb/test:
<<: *config-2_6
name: test-2.6
requires:
- build-2.6
- orb/build:
<<: *config-2_7
name: build-2.7
edge: true
- orb/test:
<<: *config-2_7
name: test-2.7
requires:
- build-2.7
- orb/build:
<<: *config-3_0
name: build-3.0
edge: true
- orb/test:
<<: *config-3_0
name: test-3.0
requires:
- build-3.0
- orb/build:
<<: *config-3_1
name: build-3.1
edge: true
- orb/test:
<<: *config-3_1
name: test-3.1
requires:
- build-3.1
- orb/build:
<<: *config-3_2
name: build-3.2
edge: true
- orb/test:
<<: *config-3_2
name: test-3.2
requires:
- build-3.2
- orb/build:
<<: *config-3_3
name: build-3.3
edge: true
- orb/test:
<<: *config-3_3
name: test-3.3
requires:
- build-3.3
- orb/build:
<<: *config-3_4
name: build-3.4
edge: true
- orb/test:
<<: *config-3_4
name: test-3.4
requires:
- build-3.4
# ADD NEW RUBIES HERE
- orb/build:
<<: *config-jruby-9_2
name: build-jruby-9.2
edge: true
- orb/test:
<<: *config-jruby-9_2
name: test-jruby-9.2
Expand All @@ -583,6 +754,7 @@ workflows:
- orb/build:
<<: *config-jruby-9_3
name: build-jruby-9.3
edge: true
- orb/test:
<<: *config-jruby-9_3
name: test-jruby-9.3
Expand Down
2 changes: 1 addition & 1 deletion .circleci/images/primary/binary_version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
327
7
28 changes: 22 additions & 6 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,8 @@ gem 'webmock', '>= 3.10.0'

gem 'rexml', '>= 3.2.7' # https://www.ruby-lang.org/en/news/2024/05/16/dos-rexml-cve-2024-35176/

if RUBY_VERSION.start_with?('3.4.')
# ruby 3.4 breaks stable webrick; we need this fix until a version later than 1.8.1 comes out
gem 'webrick', git: 'https://github.com/ruby/webrick.git', ref: '0c600e169bd4ae267cb5eeb6197277c848323bbe'
elsif RUBY_VERSION >= '3.0.0' # No longer bundled by default since Ruby 3.0
gem 'webrick', '>= 1.7.0'
end
# No longer bundled by default since Ruby 3.0
gem 'webrick', '>= 1.8.2' if RUBY_VERSION >= '3.0.0'

if RUBY_VERSION >= '2.6.0'
# 1.50 is the last version to support Ruby 2.6
Expand Down Expand Up @@ -90,3 +86,23 @@ end
group :dev do
gem 'ruby-lsp', require: false if RUBY_VERSION >= '3.0.0' && RUBY_PLATFORM != 'java'
end

# `1.17.0` provides broken RBS type definitions
# https://github.com/ffi/ffi/blob/master/CHANGELOG.md#1170rc1--2024-04-08
#
# TODO: Remove this once the issue is resolved: https://github.com/ffi/ffi/issues/1107
gem 'ffi', '~> 1.16.3', require: false

# Ruby 3.4 should be supported by strscan v3.1.1. However, the latest release of strscan is v3.1.0.
# Pin strscan to the latest commit sha.
#
# TODO: Remove strscan specification once v3.1.1 is released.
if RUBY_VERSION.start_with?('3.4.')
gem 'strscan',
git: 'https://github.com/ruby/strscan',
ref: '041b15df4ccc067deabd85fd489b2c15961d0e2f'
# No longer bundled by default since Ruby 3.4
gem 'base64'
gem 'bigdecimal'
gem 'mutex_m'
end
4 changes: 3 additions & 1 deletion appraisal/ruby-3.4.rb
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,9 @@
gem 'makara', '>= 0.6.0.pre' # Ruby 3 requires >= 0.6.0, which is currently in pre-release: https://rubygems.org/gems/makara/versions
gem 'mysql2', '>= 0.5.3', platform: :ruby
gem 'pg', platform: :ruby
gem 'sqlite3', '>= 1.4.2', platform: :ruby
# ActiveRecord has version constraint on sqlite3 gem
# https://github.com/rails/rails/blob/v5.2.2/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L12
gem 'sqlite3', '~> 1.3', '>= 1.3.6', platform: :ruby
gem 'sequel'
gem 'trilogy'
end
Expand Down
1 change: 1 addition & 0 deletions gemfiles/jruby_9.2_activesupport.gemfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion gemfiles/jruby_9.2_activesupport.gemfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gemfiles/jruby_9.2_aws.gemfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion gemfiles/jruby_9.2_aws.gemfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gemfiles/jruby_9.2_contrib.gemfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion gemfiles/jruby_9.2_contrib.gemfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gemfiles/jruby_9.2_contrib_old.gemfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion gemfiles/jruby_9.2_contrib_old.gemfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gemfiles/jruby_9.2_core_old.gemfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion gemfiles/jruby_9.2_core_old.gemfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gemfiles/jruby_9.2_elasticsearch_7.gemfile

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading