Skip to content
32 changes: 19 additions & 13 deletions .evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,10 @@ axes:
- id: "mongodb-version"
display_name: MongoDB Version
values:
- id: "rapid"
display_name: "Rapid"
variables:
MONGODB_VERSION: "rapid"
- id: "8.0"
display_name: "8.0"
variables:
Expand Down Expand Up @@ -1245,7 +1249,7 @@ buildvariants:
- matrix_name: "single-lb"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: load-balanced
single-mongos: single-mongos
os: ubuntu2204
Expand All @@ -1269,7 +1273,7 @@ buildvariants:
- matrix_name: "single-mongos"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "sharded-cluster"
single-mongos: single-mongos
os: ubuntu2204
Expand All @@ -1281,7 +1285,7 @@ buildvariants:
- matrix_name: CSOT
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: replica-set-single-node
os: ubuntu2204
display_name: "CSOT - ${mongodb-version}"
Expand All @@ -1304,7 +1308,7 @@ buildvariants:
matrix_spec:
retry-reads: no-retry-reads
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: ["standalone", "replica-set", "sharded-cluster"]
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}"
Expand All @@ -1316,7 +1320,7 @@ buildvariants:
matrix_spec:
retry-writes: no-retry-writes
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: [replica-set, sharded-cluster]
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}"
Expand Down Expand Up @@ -1406,7 +1410,7 @@ buildvariants:
matrix_spec:
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "replica-set"
compressor: 'zlib'
os: ubuntu2204
Expand All @@ -1419,7 +1423,7 @@ buildvariants:
matrix_spec:
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "replica-set"
compressor: 'snappy'
os: ubuntu2204
Expand All @@ -1436,7 +1440,7 @@ buildvariants:
matrix_spec:
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "replica-set"
compressor: 'zstd'
os: ubuntu2204
Expand All @@ -1448,7 +1452,7 @@ buildvariants:
- matrix_name: activesupport-"ruby-4.0"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: replica-set
as: as
os: ubuntu2204
Expand All @@ -1460,7 +1464,7 @@ buildvariants:
- matrix_name: bson-"ruby-4.0"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: replica-set
bson: "*"
os: ubuntu2204
Expand Down Expand Up @@ -1535,12 +1539,12 @@ buildvariants:
tasks:
- name: "test-mlaunch"

- matrix_name: "fle above 4.4"
- matrix_name: "fle"
matrix_spec:
auth-and-ssl: "noauth-and-nossl"
ruby: ["ruby-4.0", "ruby-3.4", "ruby-3.3", "ruby-3.2", "ruby-3.1"]
topology: [replica-set, sharded-cluster]
mongodb-version: [ '6.0', '7.0', '8.0' ]
mongodb-version: [ '6.0', '7.0', '8.0', 'rapid' ]
os: ubuntu2204
fle: helper
display_name: "FLE: ${mongodb-version} ${topology} ${ruby}"
Expand Down Expand Up @@ -1571,6 +1575,8 @@ buildvariants:
# tasks:
# - name: "test-fle"

# Runs specs against the latest server. This is not automatically run on PR's
# because we don't want to block PR's when the latest DB breaks something.
- name: 'latest-server'
activate: false
display_name: 'Latest MongoDB Server'
Expand All @@ -1592,7 +1598,7 @@ buildvariants:
auth-and-ssl: [ aws-regular, aws-assume-role, aws-web-identity ]
ruby: "ruby-4.0"
topology: standalone
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
os: ubuntu2204
display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}"
tags: ["pr"]
Expand Down
4 changes: 4 additions & 0 deletions .evergreen/config/axes.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ axes:
- id: "mongodb-version"
display_name: MongoDB Version
values:
- id: "rapid"
display_name: "Rapid"
variables:
MONGODB_VERSION: "rapid"
- id: "8.0"
display_name: "8.0"
variables:
Expand Down
25 changes: 15 additions & 10 deletions .evergreen/config/standard.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@
jrubies

# The latest stable version of MongoDB
latest_stable_mdb = "8.0".inspect # so it gets quoted as a string
latest_stable_mdb_raw = "8.0"
latest_stable_mdb = latest_stable_mdb_raw.inspect # so it gets quoted as a string

stable_and_rapid = [ latest_stable_mdb_raw, "rapid" ]

recent_mdb = %w( 8.0 7.0 )
%>
Expand Down Expand Up @@ -112,7 +115,7 @@ buildvariants:
- matrix_name: "single-lb"
matrix_spec:
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: load-balanced
single-mongos: single-mongos
os: ubuntu2204
Expand All @@ -136,7 +139,7 @@ buildvariants:
- matrix_name: "single-mongos"
matrix_spec:
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: "sharded-cluster"
single-mongos: single-mongos
os: ubuntu2204
Expand All @@ -148,7 +151,7 @@ buildvariants:
- matrix_name: CSOT
matrix_spec:
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: replica-set-single-node
os: ubuntu2204
display_name: "CSOT - ${mongodb-version}"
Expand All @@ -171,7 +174,7 @@ buildvariants:
matrix_spec:
retry-reads: no-retry-reads
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: <%= topologies %>
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}"
Expand All @@ -183,7 +186,7 @@ buildvariants:
matrix_spec:
retry-writes: no-retry-writes
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: [replica-set, sharded-cluster]
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}"
Expand Down Expand Up @@ -270,7 +273,7 @@ buildvariants:
- name: "run-main-test-suite"

<% [
[latest_ruby, latest_stable_mdb, 'ubuntu2204'],
[latest_ruby, stable_and_rapid, 'ubuntu2204'],
[supported_mri_ruby_2, '"6.0"', 'ubuntu2004']
].each do |rubies, mdb, distro|
%>
Expand Down Expand Up @@ -342,12 +345,12 @@ buildvariants:
- name: "test-mlaunch"
<% end %>

- matrix_name: "fle above 4.4"
- matrix_name: "fle"
matrix_spec:
auth-and-ssl: "noauth-and-nossl"
ruby: <%= supported_mri_rubies_3_ubuntu %>
topology: [replica-set, sharded-cluster]
mongodb-version: [ '6.0', '7.0', '8.0' ]
mongodb-version: [ '6.0', '7.0', '8.0', 'rapid' ]
os: ubuntu2204
fle: helper
display_name: "FLE: ${mongodb-version} ${topology} ${ruby}"
Expand Down Expand Up @@ -378,6 +381,8 @@ buildvariants:
# tasks:
# - name: "test-fle"

# Runs specs against the latest server. This is not automatically run on PR's
# because we don't want to block PR's when the latest DB breaks something.
- name: 'latest-server'
activate: false
display_name: 'Latest MongoDB Server'
Expand All @@ -399,7 +404,7 @@ buildvariants:
auth-and-ssl: [ aws-regular, aws-assume-role, aws-web-identity ]
ruby: <%= latest_ruby %>
topology: standalone
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
os: ubuntu2204
display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}"
tags: ["pr"]
Expand Down
1 change: 1 addition & 0 deletions .evergreen/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ prepare_server

if test "$DOCKER_PRELOAD" != 1; then
install_mlaunch_venv
pip3 install waitress
fi

# Make sure cmake is installed (in case we need to install the libmongocrypt
Expand Down
2 changes: 1 addition & 1 deletion .mod/drivers-evergreen-tools
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@
)
end

# 6.0 mongocrypt expects a JSON-compatible error message from the KMS, but
# the mock KMS server returns an HTML error page.
let(:affected_by_mock_kms_server_change) do
(kms_provider == 'azure' || kms_provider == 'gcp') &&
ClusterConfig.instance.server_version < '7.0'
end

let(:client_encryption_no_client_cert) do
Mongo::ClientEncryption.new(
client,
Expand Down Expand Up @@ -314,7 +321,7 @@
end

it 'raises KmsError directly without wrapping CryptError' do
if should_raise_with_tls
if should_raise_with_tls && !affected_by_mock_kms_server_change
begin
client_encryption_with_tls.create_data_key(
kms_provider,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ tests:
- _id: 2

- description: Network error on Monitor check
skipReason: "RUBY-3781: Ruby driver's legacy_write_with_retry causes this to fail"
operations:
- name: createEntities
object: testRunner
Expand Down
15 changes: 15 additions & 0 deletions spec/support/crypt.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,21 @@ module Crypt

# For all FLE-related tests
shared_context 'define shared FLE helpers' do
# SERVER-118428 -- mongocryptd rejects large messages
# DRIVERS-3382 -- once SERVER-118428 is fixed, remove these checks
before do
if extra_options[:mongocryptd_uri]
version = ClusterConfig.instance.server_version
bad_mongocryptd = case version
when /^8\.2/ then version >= '8.2.4'
when /^8\.0/ then version >= '8.0.18'
when /^7\.0/ then version >= '7.0.29'
else false
end
skip 'Bad mongocryptd version -- see DRIVERS-3382' if bad_mongocryptd
end
end

# 96-byte binary string, base64-encoded local master key
let(:local_master_key_b64) do
Crypt::LOCAL_MASTER_KEY_B64
Expand Down
Loading