Skip to content

Commit 1f75079

Browse files
RUBY-3775 Add build variant for "rapid" server release (#2987)
* Add rapid to the matrix of database versions to test * hard code the rapid version drivers-evergreen-tools is (for some reason) pulling 8.3.0-alpha when I ask for rapid... * we need the newer drivers-evergreen-tools, after all * make sure waitress is installed (for ocsp mocking) * disable mongocryptd specs per SERVER-118428 * some 6.0 specs are broken by changes to mock kms server * have to approach this with a narrower filter * ugh, got the logic flipped * rapid really does mean the latest minor release (even pre-releases) * skip failing spec (caused by RUBY-3781) * account for change of behavior in 8.3 * disable FLE & CSOT tests for rapid * drop_one with invalid index no longer fails under 8.3.0-alpha3 I'm removing this test entirely because it really just checks for server behavior, rather than driver behavior. * try to account for crypt shared location * remove unnecessary environment shenanigans * Fix more fle specs * Fix even more fle specs * Fix as many fle specs as possible --------- Co-authored-by: Dmitry Rybakov <dmitry.rybakov@mongodb.com>
1 parent 29fbddb commit 1f75079

14 files changed

+53
-41
lines changed

.evergreen/config.yml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -777,6 +777,10 @@ axes:
777777
- id: "mongodb-version"
778778
display_name: MongoDB Version
779779
values:
780+
- id: "rapid"
781+
display_name: "Rapid"
782+
variables:
783+
MONGODB_VERSION: "rapid"
780784
- id: "8.0"
781785
display_name: "8.0"
782786
variables:
@@ -1233,7 +1237,7 @@ buildvariants:
12331237
- matrix_name: "single-lb"
12341238
matrix_spec:
12351239
ruby: "ruby-4.0"
1236-
mongodb-version: "8.0"
1240+
mongodb-version: ["8.0", "rapid"]
12371241
topology: load-balanced
12381242
single-mongos: single-mongos
12391243
os: ubuntu2204
@@ -1257,7 +1261,7 @@ buildvariants:
12571261
- matrix_name: "single-mongos"
12581262
matrix_spec:
12591263
ruby: "ruby-4.0"
1260-
mongodb-version: "8.0"
1264+
mongodb-version: ["8.0", "rapid"]
12611265
topology: "sharded-cluster"
12621266
single-mongos: single-mongos
12631267
os: ubuntu2204
@@ -1292,7 +1296,7 @@ buildvariants:
12921296
matrix_spec:
12931297
retry-reads: no-retry-reads
12941298
ruby: "ruby-4.0"
1295-
mongodb-version: "8.0"
1299+
mongodb-version: ["8.0", "rapid"]
12961300
topology: ["standalone", "replica-set", "sharded-cluster"]
12971301
os: ubuntu2204
12981302
display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}"
@@ -1304,7 +1308,7 @@ buildvariants:
13041308
matrix_spec:
13051309
retry-writes: no-retry-writes
13061310
ruby: "ruby-4.0"
1307-
mongodb-version: "8.0"
1311+
mongodb-version: ["8.0", "rapid"]
13081312
topology: [replica-set, sharded-cluster]
13091313
os: ubuntu2204
13101314
display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}"
@@ -1394,7 +1398,7 @@ buildvariants:
13941398
matrix_spec:
13951399
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
13961400
ruby: "ruby-4.0"
1397-
mongodb-version: "8.0"
1401+
mongodb-version: ["8.0", "rapid"]
13981402
topology: "replica-set"
13991403
compressor: 'zlib'
14001404
os: ubuntu2204
@@ -1407,7 +1411,7 @@ buildvariants:
14071411
matrix_spec:
14081412
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
14091413
ruby: "ruby-4.0"
1410-
mongodb-version: "8.0"
1414+
mongodb-version: ["8.0", "rapid"]
14111415
topology: "replica-set"
14121416
compressor: 'snappy'
14131417
os: ubuntu2204
@@ -1424,7 +1428,7 @@ buildvariants:
14241428
matrix_spec:
14251429
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
14261430
ruby: "ruby-4.0"
1427-
mongodb-version: "8.0"
1431+
mongodb-version: ["8.0", "rapid"]
14281432
topology: "replica-set"
14291433
compressor: 'zstd'
14301434
os: ubuntu2204
@@ -1436,7 +1440,7 @@ buildvariants:
14361440
- matrix_name: activesupport-"ruby-4.0"
14371441
matrix_spec:
14381442
ruby: "ruby-4.0"
1439-
mongodb-version: "8.0"
1443+
mongodb-version: ["8.0", "rapid"]
14401444
topology: replica-set
14411445
as: as
14421446
os: ubuntu2204
@@ -1448,7 +1452,7 @@ buildvariants:
14481452
- matrix_name: bson-"ruby-4.0"
14491453
matrix_spec:
14501454
ruby: "ruby-4.0"
1451-
mongodb-version: "8.0"
1455+
mongodb-version: ["8.0", "rapid"]
14521456
topology: replica-set
14531457
bson: "*"
14541458
os: ubuntu2204
@@ -1523,7 +1527,7 @@ buildvariants:
15231527
tasks:
15241528
- name: "test-mlaunch"
15251529

1526-
- matrix_name: "fle above 4.4"
1530+
- matrix_name: "fle"
15271531
matrix_spec:
15281532
auth-and-ssl: "noauth-and-nossl"
15291533
ruby: ["ruby-4.0", "ruby-3.4", "ruby-3.3", "ruby-3.2", "ruby-3.1"]
@@ -1572,6 +1576,8 @@ buildvariants:
15721576
# tasks:
15731577
# - name: "test-fle"
15741578

1579+
# Runs specs against the latest server. This is not automatically run on PR's
1580+
# because we don't want to block PR's when the latest DB breaks something.
15751581
- name: 'latest-server'
15761582
activate: false
15771583
display_name: 'Latest MongoDB Server'
@@ -1593,7 +1599,7 @@ buildvariants:
15931599
auth-and-ssl: [ aws-regular, aws-assume-role, aws-web-identity ]
15941600
ruby: "ruby-4.0"
15951601
topology: standalone
1596-
mongodb-version: "8.0"
1602+
mongodb-version: ["8.0", "rapid"]
15971603
os: ubuntu2204
15981604
display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}"
15991605
tags: ["pr"]

.evergreen/config/axes.yml.erb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ axes:
22
- id: "mongodb-version"
33
display_name: MongoDB Version
44
values:
5+
- id: "rapid"
6+
display_name: "Rapid"
7+
variables:
8+
MONGODB_VERSION: "rapid"
59
- id: "8.0"
610
display_name: "8.0"
711
variables:

.evergreen/config/standard.yml.erb

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@
2727
jrubies
2828

2929
# The latest stable version of MongoDB
30-
latest_stable_mdb = "8.0".inspect # so it gets quoted as a string
30+
latest_stable_mdb_raw = "8.0"
31+
latest_stable_mdb = latest_stable_mdb_raw.inspect # so it gets quoted as a string
32+
33+
stable_and_rapid = [ latest_stable_mdb_raw, "rapid" ]
3134

3235
recent_mdb = %w( 8.0 7.0 )
3336
%>
@@ -112,7 +115,7 @@ buildvariants:
112115
- matrix_name: "single-lb"
113116
matrix_spec:
114117
ruby: <%= latest_ruby %>
115-
mongodb-version: <%= latest_stable_mdb %>
118+
mongodb-version: <%= stable_and_rapid %>
116119
topology: load-balanced
117120
single-mongos: single-mongos
118121
os: ubuntu2204
@@ -136,7 +139,7 @@ buildvariants:
136139
- matrix_name: "single-mongos"
137140
matrix_spec:
138141
ruby: <%= latest_ruby %>
139-
mongodb-version: <%= latest_stable_mdb %>
142+
mongodb-version: <%= stable_and_rapid %>
140143
topology: "sharded-cluster"
141144
single-mongos: single-mongos
142145
os: ubuntu2204
@@ -171,7 +174,7 @@ buildvariants:
171174
matrix_spec:
172175
retry-reads: no-retry-reads
173176
ruby: <%= latest_ruby %>
174-
mongodb-version: <%= latest_stable_mdb %>
177+
mongodb-version: <%= stable_and_rapid %>
175178
topology: <%= topologies %>
176179
os: ubuntu2204
177180
display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}"
@@ -183,7 +186,7 @@ buildvariants:
183186
matrix_spec:
184187
retry-writes: no-retry-writes
185188
ruby: <%= latest_ruby %>
186-
mongodb-version: <%= latest_stable_mdb %>
189+
mongodb-version: <%= stable_and_rapid %>
187190
topology: [replica-set, sharded-cluster]
188191
os: ubuntu2204
189192
display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}"
@@ -270,7 +273,7 @@ buildvariants:
270273
- name: "run-main-test-suite"
271274

272275
<% [
273-
[latest_ruby, latest_stable_mdb, 'ubuntu2204'],
276+
[latest_ruby, stable_and_rapid, 'ubuntu2204'],
274277
[supported_mri_ruby_2, '"6.0"', 'ubuntu2004']
275278
].each do |rubies, mdb, distro|
276279
%>
@@ -342,7 +345,7 @@ buildvariants:
342345
- name: "test-mlaunch"
343346
<% end %>
344347

345-
- matrix_name: "fle above 4.4"
348+
- matrix_name: "fle"
346349
matrix_spec:
347350
auth-and-ssl: "noauth-and-nossl"
348351
ruby: <%= supported_mri_rubies_3_ubuntu %>
@@ -391,6 +394,8 @@ buildvariants:
391394
# tasks:
392395
# - name: "test-fle"
393396

397+
# Runs specs against the latest server. This is not automatically run on PR's
398+
# because we don't want to block PR's when the latest DB breaks something.
394399
- name: 'latest-server'
395400
activate: false
396401
display_name: 'Latest MongoDB Server'
@@ -412,7 +417,7 @@ buildvariants:
412417
auth-and-ssl: [ aws-regular, aws-assume-role, aws-web-identity ]
413418
ruby: <%= latest_ruby %>
414419
topology: standalone
415-
mongodb-version: <%= latest_stable_mdb %>
420+
mongodb-version: <%= stable_and_rapid %>
416421
os: ubuntu2204
417422
display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}"
418423
tags: ["pr"]

.evergreen/run-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ prepare_server
6161

6262
if test "$DOCKER_PRELOAD" != 1; then
6363
install_mlaunch_venv
64+
pip3 install waitress
6465
fi
6566

6667
# Make sure cmake is installed (in case we need to install the libmongocrypt
@@ -345,7 +346,6 @@ if test "$COMPRESSOR" = zstd; then
345346
add_uri_option compressors=zstd
346347
fi
347348

348-
349349
echo "Running tests"
350350
set +e
351351
if test -n "$TEST_CMD"; then

.mod/drivers-evergreen-tools

spec/integration/client_side_encryption/kms_tls_options_spec.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -322,9 +322,8 @@
322322
}
323323
)
324324
rescue Mongo::Error::KmsError => exc
325-
exc.message.should =~ /Error when connecting to KMS provider|Empty KMS response/
326-
exc.message.should =~ /libmongocrypt error code/
327-
exc.message.should_not =~ /CryptError/
325+
expect(exc.message).to include('libmongocrypt error code')
326+
expect(exc.message).not_to include('CryptError')
328327
else
329328
fail 'Expected to raise KmsError'
330329
end

spec/mongo/crypt/auto_decryption_context_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
include_context 'define shared FLE helpers'
1010

1111
let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
12-
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
12+
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
1313
let(:context) { described_class.new(mongocrypt, io, command) }
1414

1515
let(:logger) { nil }

spec/mongo/crypt/auto_encryption_context_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
include_context 'define shared FLE helpers'
1010

1111
let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
12-
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
12+
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
1313
let(:context) { described_class.new(mongocrypt, io, db_name, command) }
1414

1515
let(:logger) { nil }

spec/mongo/crypt/data_key_context_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
end
1717

1818
let(:mongocrypt) do
19-
Mongo::Crypt::Handle.new(credentials, kms_tls_options)
19+
Mongo::Crypt::Handle.new(credentials, kms_tls_options, extra_options)
2020
end
2121

2222
let(:io) { double("Mongo::Crypt::EncryptionIO") }

spec/mongo/crypt/explicit_decryption_context_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
include_context 'define shared FLE helpers'
1010

1111
let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
12-
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
12+
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
1313
let(:context) { described_class.new(mongocrypt, io, value) }
1414
let(:logger) { nil }
1515
let(:io) { double("Mongo::ClientEncryption::IO") }

0 commit comments

Comments
 (0)