diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 919ee71c08..a7562f9210 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -788,6 +788,14 @@ axes: - id: "ruby" display_name: Ruby Version values: + - id: "ruby-3.2" + display_name: ruby-3.2 + variables: + RVM_RUBY: "ruby-3.2" + - id: "ruby-3.1" + display_name: ruby-3.1 + variables: + RVM_RUBY: "ruby-3.1" - id: "ruby-3.1" display_name: ruby-3.1 variables: @@ -820,51 +828,38 @@ axes: display_name: jruby-9.3 variables: RVM_RUBY: "jruby-9.3" - + - id: "jruby-9.4" + display_name: jruby-9.4 + variables: + RVM_RUBY: "jruby-9.4" + - id: "os" display_name: OS values: - id: debian11 display_name: "Debian 11" run_on: debian11-small - - id: ubuntu2004 - display_name: "Ubuntu 20.04" - run_on: ubuntu2004-small - - id: ubuntu1804 - display_name: "Ubuntu 18.04" - run_on: ubuntu1804-small - - id: ubuntu1604 - display_name: "Ubuntu 16.04" - run_on: ubuntu1604-small - - id: rhel80 + - id: ubuntu2204 + display_name: "Ubuntu 22.04" + run_on: ubuntu2204-small + - id: rhel8 display_name: "RHEL 8" run_on: rhel80-small - - id: rhel70 - display_name: "RHEL 7" - run_on: rhel70-small - - id: rhel62 - display_name: "RHEL 6" - run_on: rhel62-small + - id: rhel8-arm + display_name: "RHEL 8 ARM64" + run_on: rhel82-arm64-small - id: docker-distro display_name: Docker Distro values: - - id: debian92 - display_name: debian92 - variables: - DOCKER_DISTRO: debian92 - - id: debian10 - display_name: debian10 + - id: debian11 + display_name: debian11 variables: - DOCKER_DISTRO: debian10 - - id: ubuntu1804 - display_name: ubuntu1804 + DOCKER_DISTRO: debian11 + - id: ubuntu2204 + display_name: ubuntu2204 variables: - DOCKER_DISTRO: ubuntu1804 - - id: ubuntu2004 - display_name: ubuntu2004 - variables: - DOCKER_DISTRO: ubuntu2004 + DOCKER_DISTRO: ubuntu2204 - id: "compressor" display_name: Compressor @@ -959,7 +954,7 @@ axes: values: - id: mmapv1 display_name: MMAPv1 - run_on: ubuntu1604-small + run_on: rhel80-small variables: MMAPV1: 'true' @@ -1060,148 +1055,105 @@ axes: display_name: No buildvariants: - - matrix_name: "docker" - matrix_spec: - ruby: ["ruby-2.7"] - mongodb-version: "4.2" - topology: standalone - os: ubuntu1804 - preload: preload - display_name: "Docker ${os} ${mongodb-version} ${topology} ${ruby} ${preload}" - tasks: - - name: "test-docker" - - - matrix_name: "docker" - matrix_spec: - ruby: ["ruby-2.7"] - mongodb-version: "4.2" - topology: standalone - os: ubuntu1804 - preload: nopreload - display_name: "Docker ${os} ${mongodb-version} ${topology} ${ruby} ${preload}" - tasks: - - name: "test-docker" - - - matrix_name: "mongo-latest" + - matrix_name: "auth/ssl" matrix_spec: auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1"] - mongodb-version: ['latest'] + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu2004 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + os: rhel8 + display_name: ${auth-and-ssl} ${ruby} ${topology} tasks: - name: "test-mlaunch" - - matrix_name: "mongo-6.0" + # 'latest' is broken until the QE2 changes are merged (RUBY-3211, RUBY-3226) + - matrix_name: "mongo-recent" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1"] + ruby: ["ruby-3.1", "jruby-9.3"] + #mongodb-version: ['latest', '6.0'] mongodb-version: ['6.0'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu2004 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + os: ['rhel8', 'ubuntu2204'] + display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-5.3" + # Only JRuby-9.4 is built for arm in the current toolchain, but 9.4 has other + # issues. Either we fix those issues, or we build 9.3 for arm in the toolchain, + # and hope it fixes the issues... Until then, we can only test MRI ruby on arm. + # + # further: 'latest' is broken until the QE2 changes are merged (RUBY-3211, + # RUBY-3226) + - matrix_name: "mongo-recent-arm" matrix_spec: - auth-and-ssl: noauth-and-nossl - ruby: ["ruby-3.1"] - mongodb-version: ['5.3'] + ruby: "ruby-3.1" + #mongodb-version: ['latest', '6.0'] + mongodb-version: ['6.0'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu2004 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + os: 'rhel8-arm' + display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-4.2" + - matrix_name: "mongo-5.x" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-2.7", "ruby-2.5"] - mongodb-version: ['4.2'] + ruby: ["ruby-3.1", "ruby-2.7", "jruby-9.3"] + mongodb-version: ['5.3', '5.0'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-4.0" + - matrix_name: "mongo-4.x" matrix_spec: - auth-and-ssl: ["noauth-and-ssl", "auth-and-nossl"] - ruby: "ruby-2.6" - mongodb-version: ['4.0'] + ruby: ["ruby-3.0", "ruby-2.7", "ruby-2.6", "ruby-2.5"] + mongodb-version: ['4.4', '4.2', '4.0'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-3.6" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] ruby: "ruby-2.5" mongodb-version: ['3.6'] topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1604 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "mongo-4.4" - matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.0", "ruby-2.7"] - mongodb-version: '4.4' - topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "mongo-5.0" - matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1", "ruby-2.7"] - mongodb-version: '5.0' - topology: '*' - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "single-lb" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.0"] - mongodb-version: '5.0' + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: load-balanced single-mongos: single-mongos - os: ubuntu2004 + os: rhel8 display_name: "${mongodb-version} ${topology} single-lb ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-5.0-api-version" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1"] + ruby: "ruby-3.1" mongodb-version: '5.0' topology: standalone api-version-required: yes - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} api-version-required ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "single-mongos" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: "ruby-2.6" - mongodb-version: ['4.0', '4.2', '4.4'] + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: "sharded-cluster" single-mongos: single-mongos - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} single-mongos ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -1209,10 +1161,10 @@ buildvariants: - matrix_name: "no-retry-reads" matrix_spec: retry-reads: no-retry-reads - ruby: "ruby-2.6" - mongodb-version: ["4.0"] + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}" tasks: - name: "test-mlaunch" @@ -1220,10 +1172,10 @@ buildvariants: - matrix_name: "no-retry-writes" matrix_spec: retry-writes: no-retry-writes - ruby: ["ruby-2.7"] - mongodb-version: ["4.0"] + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: [replica-set, sharded-cluster] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}" tasks: - name: "test-mlaunch" @@ -1234,18 +1186,18 @@ buildvariants: mongodb-version: ['3.6', '4.0'] topology: ["standalone", "replica-set", "sharded-cluster"] storage-engine: mmapv1 - os: ubuntu1604 + os: rhel8 display_name: "${mongodb-version} ${topology} mmapv1 ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "lint-5.0" + - matrix_name: "lint" matrix_spec: lint: on - ruby: ["ruby-3.1", "ruby-2.7"] - mongodb-version: ["5.0"] + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: '*' - os: ubuntu2004 + os: rhel8 display_name: "${mongodb-version} ${topology} ${lint} ${ruby}" tasks: - name: "test-mlaunch" @@ -1253,10 +1205,10 @@ buildvariants: - matrix_name: "fork" matrix_spec: fork: on - ruby: ["ruby-3.0", "ruby-2.7"] - mongodb-version: ["4.4"] + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} fork ${ruby}" tasks: - name: "test-mlaunch" @@ -1264,10 +1216,10 @@ buildvariants: - matrix_name: "solo" matrix_spec: solo: on - ruby: [ruby-3.1, ruby-3.0, ruby-2.7, ruby-2.6, ruby-2.5, jruby-9.2, jruby-9.3] - mongodb-version: ["4.4"] + ruby: ["ruby-3.1", "ruby-3.0", "ruby-2.7", "ruby-2.6", "ruby-2.5", "jruby-9.3", "jruby-9.2"] + mongodb-version: "6.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} solo ${ruby}" tasks: - name: "test-mlaunch" @@ -1278,7 +1230,7 @@ buildvariants: ruby: ["ruby-2.7"] mongodb-version: ['4.2', '4.0', '3.6'] topology: replica-set - os: ubuntu1604 + os: rhel8 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" @@ -1286,392 +1238,189 @@ buildvariants: - matrix_name: "stress" matrix_spec: stress: on - ruby: ["ruby-2.7"] - mongodb-version: ['5.0', '4.4'] + ruby: "ruby-3.1" + mongodb-version: ["6.0", "5.3"] topology: replica-set - os: ubuntu2004 + os: rhel8 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "x509-tests" - matrix_spec: - auth-and-ssl: "x509" - ruby: "ruby-2.7" - mongodb-version: "4.2" - topology: standalone - os: ubuntu1804 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" + # The X.509 tests are failing with exceptions being expected, but never + # raised. (RUBY-3267) + # + # - matrix_name: "x509-tests" + # matrix_spec: + # auth-and-ssl: "x509" + # ruby: "ruby-3.1" + # # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure + # # the server for certain auth mechanisms. Once run-tests.sh is made smart + # # enough to install mongosh, and then use either mongo or mongosh + # # (depending on server version and what's available), we can bump this to + # # the latest stable db version. + # mongodb-version: "5.3" + # topology: standalone + # os: rhel8 + # display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + # tasks: + # - name: "test-mlaunch" - matrix_name: "jruby-auth" matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: "jruby-9.3" - mongodb-version: "4.2" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: jruby-9.3 + mongodb-version: "6.0" topology: ["standalone", "replica-set", "sharded-cluster"] - os: rhel80 + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "jruby-noauth" + - matrix_name: "zlib" matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "jruby-9.2" - mongodb-version: "3.6" - topology: ["standalone", "replica-set", "sharded-cluster"] - os: ubuntu1804 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zlib-auth" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-2.7"] - mongodb-version: "4.4" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: ["ruby-3.1", "ruby-2.7", "jruby-9.3"] + mongodb-version: "6.0" topology: "replica-set" compressor: 'zlib' - os: ubuntu1804 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zlib-auth-3.0" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-3.0"] - mongodb-version: "4.4" - topology: "standalone" - compressor: 'zlib' - os: ubuntu2004 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zlib-noauth" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "ruby-2.5" - mongodb-version: "3.6" - topology: replica-set - compressor: 'zlib' - os: ubuntu1604 + os: rhel8 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "snappy-auth" + - matrix_name: "snappy" matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-2.7"] - mongodb-version: "4.4" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: ["ruby-3.1", "ruby-2.7", "jruby-9.3"] + mongodb-version: "6.0" topology: "replica-set" compressor: 'snappy' - os: ubuntu1804 + os: rhel8 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "snappy-auth-3" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-3.1"] - mongodb-version: "4.4" - topology: "standalone" - compressor: 'snappy' - os: ubuntu2004 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "snappy-noauth" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "ruby-2.5" - mongodb-version: ["3.6"] - topology: replica-set - compressor: 'snappy' - os: ubuntu1604 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - -# https://jira.mongodb.org/browse/RUBY-2723 -# Enable or remove when the ticket is resolved. -# - matrix_name: "snappy-jruby" -# matrix_spec: -# ruby: jruby-9.2 -# mongodb-version: "4.4" -# topology: replica-set -# compressor: 'snappy' -# os: ubuntu1804 -# display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" -# tasks: -# - name: "test-mlaunch" - + # the zstd-ruby gem does not support JRuby (explicitly). However, there is + # apparently a zstd-jni gem for JRuby that we could investigate here; if + # this test is ever supported to support jruby, the `sample_mri_rubies` + # reference should be replaced with `sample_rubies`. - matrix_name: "zstd-auth" matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-2.7"] - mongodb-version: "4.4" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: ["ruby-3.1", "ruby-2.7"] + mongodb-version: "6.0" topology: "replica-set" compressor: 'zstd' - os: ubuntu1804 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zstd-auth-3.0" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-3.0"] - mongodb-version: "4.4" - topology: "standalone" - compressor: 'zstd' - os: ubuntu1804 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zstd-noauth" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "ruby-2.5" - mongodb-version: "4.2" - topology: replica-set - compressor: 'zstd' - os: ubuntu1804 + os: rhel8 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" -# - matrix_name: "zstd-jruby" -# matrix_spec: -# ruby: jruby-9.2 -# mongodb-version: "4.4" -# topology: replica-set -# compressor: 'zstd' -# os: ubuntu1804 -# display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" -# tasks: -# - name: "test-mlaunch" - -# - matrix_name: "ruby-head" -# matrix_spec: -# auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] -# ruby: ["ruby-head"] -# mongodb-version: "4.2" -# topology: "*" -# os: ubuntu1804 -# display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" -# tasks: -# - name: "test-mlaunch" - - matrix_name: "activesupport" matrix_spec: - ruby: ["ruby-3.0", "ruby-2.7"] - mongodb-version: '4.4' + ruby: ["ruby-3.1", "ruby-2.7", "jruby-9.3"] + mongodb-version: "6.0" topology: replica-set as: as - os: ubuntu1804 + os: rhel8 display_name: "AS ${mongodb-version} ${topology} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "bson" matrix_spec: - ruby: [ruby-3.1, ruby-2.7, jruby-9.2] - mongodb-version: '4.4' + ruby: ["ruby-3.1", "ruby-2.7", "jruby-9.3"] + mongodb-version: "6.0" topology: replica-set bson: "*" - os: rhel80 + os: rhel8 display_name: "AS ${mongodb-version} ${topology} ${ruby} ${bson}" tasks: - name: "test-mlaunch" - - matrix_name: "kerberos-integration-ubuntu" - matrix_spec: - # Other Rubies segfault - ruby: ruby-2.5 - display_name: "Kerberos integration Ubuntu ${ruby}" - run_on: - - ubuntu1804-small - tasks: - - name: "test-kerberos-integration" - - # All skipped because of segfaults - #- matrix_name: "kerberos-integration-rhel" - # matrix_spec: - # # Other Rubies segfault - # ruby: [ruby-2.7] - # os: ubuntu1804 - # display_name: "Kerberos integration RHEL ${ruby} ${os}" - # tasks: - # - name: "test-kerberos-integration" - - # Kerberos integration tests on debian are omitted due to segfaults: - # https://jira.mongodb.org/browse/RUBY-1534 + # kerberos integration tests are broken (RUBY-3266) + # - matrix_name: "kerberos-integration" + # matrix_spec: + # ruby: ["ruby-3.1", "ruby-2.7", "jruby-9.3"] + # os: rhel8 + # display_name: "Kerberos integration ${os} ${ruby}" + # tasks: + # - name: "test-kerberos-integration" - matrix_name: "kerberos-unit" matrix_spec: - ruby: "ruby-2.6" - mongodb-version: "4.2" + ruby: "ruby-3.1" + mongodb-version: "6.0" topology: standalone - os: ubuntu1804 + os: rhel8 auth-and-ssl: kerberos display_name: "Kerberos Tests" tasks: - name: "test-kerberos" - - matrix_name: "fle-latest" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-3.1] - topology: [replica-set, sharded-cluster] - mongodb-version: ['latest'] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu2004 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-6.0" + # 'latest' is broken until the QE2 changes are merged (RUBY-3211, RUBY-3226) + # + # - matrix_name: "fle-latest" + # matrix_spec: + # auth-and-ssl: "noauth-and-nossl" + # ruby: "ruby-3.1" + # topology: [replica-set, sharded-cluster] + # mongodb-version: [ 'latest' ] + # os: rhel8 + # fle: helper + # display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" + # tasks: + # - name: "test-fle" + + - matrix_name: "fle" matrix_spec: auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-3.1, ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: [replica-set, sharded-cluster] - mongodb-version: ['6.0'] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu2004 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-4.4" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-3.1] - topology: standalone - mongodb-version: ['4.4'] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu1804 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-4.2" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-2.5] - topology: [standalone, replica-set, sharded-cluster] - mongodb-version: ["4.2"] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu1804 - display_name: "FLE: ${topology} ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-4.0" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-2.6] - topology: standalone - mongodb-version: ["4.0"] - os: ubuntu2004 - fle: path - docker-distro: ubuntu1804 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - # https://jira.mongodb.org/browse/RUBY-3217 - - matrix_name: "fle-jruby" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [jruby-9.2, jruby-9.3] - topology: standalone - mongodb-version: ['5.0'] - os: ubuntu2004 + mongodb-version: [ '6.0', '4.4', '4.2', '4.0' ] + os: rhel8 fle: helper - docker-distro: ubuntu2004 - display_name: "FLE: ${mongodb-version} ${ruby}" + display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" tasks: - - name: "test-fle-via-docker" + - name: "test-fle" - matrix_name: aws-auth-regular matrix_spec: - auth-and-ssl: aws-regular - ruby: [ruby-2.7] + auth-and-ssl: [ aws-regular, aws-assume-role, aws-ec2, aws-ecs, aws-web-identity ] + ruby: "ruby-3.1" topology: standalone - mongodb-version: '4.4' - os: ubuntu1804 - display_name: "AWS auth regular: ${mongodb-version} ${ruby}" + # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure + # the server for certain auth mechanisms. Once run-tests.sh is made smart + # enough to install mongosh, and then use either mongo or mongosh + # (depending on server version and what's available), we can bump this to + # the latest stable db version. + mongodb-version: "5.3" + os: rhel8 + display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}" tasks: - name: "test-aws-auth" - - matrix_name: aws-auth-temporary - matrix_spec: - auth-and-ssl: [aws-assume-role, aws-ec2, aws-ecs, aws-web-identity] - ruby: [ruby-3.1] - topology: standalone - mongodb-version: '4.4' - os: ubuntu1804 - display_name: "AWS auth temporary: ${auth-and-ssl} ${mongodb-version} ${ruby}" - tasks: - - name: "test-aws-auth" - - # No JRuby due to https://github.com/jruby/jruby-openssl/issues/210 - # TODO Add ruby-3.0: RUBY-2717 - - - matrix_name: ocsp-verifier - ruby-2.5 + - matrix_name: ocsp-verifier matrix_spec: ocsp-verifier: true - ruby: ruby-2.5 + # No JRuby due to https://github.com/jruby/jruby-openssl/issues/210 + ruby: ["ruby-3.1", "ruby-3.0", "ruby-2.7", "ruby-2.6", "ruby-2.5"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 - docker-distro: debian10 - display_name: 'OCSP verifier: ${mongodb-version} ${ruby}' - tasks: &1 - - name: test-via-docker - - matrix_name: ocsp-verifier - ruby-2.6 - matrix_spec: - ocsp-verifier: true - ruby: ruby-2.6 - topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 - docker-distro: debian10 - display_name: 'OCSP verifier: ${mongodb-version} ${ruby}' - tasks: *1 - - matrix_name: ocsp-verifier - ruby-2.7 - matrix_spec: - ocsp-verifier: true - ruby: ruby-2.7 - topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 - docker-distro: debian10 - display_name: 'OCSP verifier: ${mongodb-version} ${ruby}' - tasks: *1 - + mongodb-version: "6.0" + os: rhel8 + display_name: "OCSP verifier: ${mongodb-version} ${ruby}" + tasks: + - name: test-mlaunch - matrix_name: ocsp-must-staple matrix_spec: ocsp-algorithm: ecdsa ocsp-must-staple: on ocsp-delegate: on - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - must staple: ${mongodb-version} ${ruby}" tasks: @@ -1681,10 +1430,10 @@ buildvariants: matrix_spec: ocsp-algorithm: rsa ocsp-status: unknown - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - unknown: ${mongodb-version} ${ruby}" tasks: @@ -1697,10 +1446,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "none" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1711,10 +1460,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "none" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1725,10 +1474,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: fail extra-uri-options: "none" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1739,10 +1488,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsInsecure=true" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1753,10 +1502,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsInsecure=true" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1767,10 +1516,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsInsecure=true" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1781,10 +1530,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsAllowInvalidCertificates=true" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1795,10 +1544,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsAllowInvalidCertificates=true" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1809,10 +1558,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: pass extra-uri-options: "tlsAllowInvalidCertificates=true" - ruby: [ruby-3.0, ruby-2.7] + ruby: ["ruby-3.1", "ruby-2.7"] topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -1829,21 +1578,21 @@ buildvariants: ocsp-status: [valid, unknown] ocsp-delegate: '*' ocsp-connectivity: pass - ruby: jruby-9.2 + ruby: jruby-9.3 topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: "6.0" + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch - matrix_name: testgcpkms-variant matrix_spec: - ruby: ruby-3.0 + ruby: "ruby-3.1" fle: helper topology: standalone - os: debian11 - mongodb-version: 6.0 + os: rhel8 + mongodb-version: "6.0" display_name: "GCP KMS" tasks: - name: testgcpkms_task_group @@ -1854,7 +1603,7 @@ buildvariants: ruby: ruby-3.0 fle: helper topology: standalone - os: debian11 + os: debian11 # could eventually look at updating this to rhel80 mongodb-version: 6.0 display_name: "AZURE KMS" tasks: @@ -1863,21 +1612,19 @@ buildvariants: - matrix_name: "atlas" matrix_spec: - ruby: ["ruby-2.5", "ruby-2.6", "ruby-2.7", "ruby-3.0", "ruby-3.1", "jruby-9.2"] + ruby: ["ruby-3.1", "ruby-3.0", "ruby-2.7", "ruby-2.6", "ruby-2.5", "jruby-9.3", "jruby-9.2"] + os: rhel8 display_name: "Atlas tests ${ruby}" - run_on: - - ubuntu1804-small tasks: - name: test-atlas - matrix_name: "serverless" matrix_spec: # https://jira.mongodb.org/browse/RUBY-3217 - # ruby: ["ruby-2.5", "ruby-2.6", "ruby-2.7", "ruby-3.0", "ruby-3.1", "jruby-9.3"] - ruby: ["ruby-2.5", "ruby-2.6", "ruby-2.7", "ruby-3.0", "ruby-3.1"] + # ruby: ["ruby-3.1", "ruby-3.0", "ruby-2.7", "ruby-2.6", "ruby-2.5", "jruby-9.3", "jruby-9.2"] + ruby: ["ruby-3.1", "ruby-3.0", "ruby-2.7", "ruby-2.6", "ruby-2.5"] fle: path + os: rhel8 display_name: "Atlas serverless ${ruby} single mongos" - run_on: - - ubuntu2004-small tasks: - name: test-serverless diff --git a/.evergreen/config/axes.yml.erb b/.evergreen/config/axes.yml.erb index d925a355b8..431da45a63 100644 --- a/.evergreen/config/axes.yml.erb +++ b/.evergreen/config/axes.yml.erb @@ -138,6 +138,14 @@ axes: - id: "ruby" display_name: Ruby Version values: + - id: "ruby-3.2" + display_name: ruby-3.2 + variables: + RVM_RUBY: "ruby-3.2" + - id: "ruby-3.1" + display_name: ruby-3.1 + variables: + RVM_RUBY: "ruby-3.1" - id: "ruby-3.1" display_name: ruby-3.1 variables: @@ -170,36 +178,31 @@ axes: display_name: jruby-9.3 variables: RVM_RUBY: "jruby-9.3" - + - id: "jruby-9.4" + display_name: jruby-9.4 + variables: + RVM_RUBY: "jruby-9.4" + - id: "os" display_name: OS values: - id: debian11 display_name: "Debian 11" run_on: debian11-small - - id: ubuntu2004 - display_name: "Ubuntu 20.04" - run_on: ubuntu2004-small - - id: ubuntu1804 - display_name: "Ubuntu 18.04" - run_on: ubuntu1804-small - - id: ubuntu1604 - display_name: "Ubuntu 16.04" - run_on: ubuntu1604-small - - id: rhel80 + - id: ubuntu2204 + display_name: "Ubuntu 22.04" + run_on: ubuntu2204-small + - id: rhel8 display_name: "RHEL 8" run_on: rhel80-small - - id: rhel70 - display_name: "RHEL 7" - run_on: rhel70-small - - id: rhel62 - display_name: "RHEL 6" - run_on: rhel62-small + - id: rhel8-arm + display_name: "RHEL 8 ARM64" + run_on: rhel82-arm64-small - id: docker-distro display_name: Docker Distro values: - <% %w(debian92 debian10 ubuntu1804 ubuntu2004).each do |distro| %> + <% %w(debian11 ubuntu2204).each do |distro| %> - id: <%= distro %> display_name: <%= distro %> variables: @@ -299,7 +302,7 @@ axes: values: - id: mmapv1 display_name: MMAPv1 - run_on: ubuntu1604-small + run_on: rhel80-small variables: MMAPV1: 'true' diff --git a/.evergreen/config/standard.yml.erb b/.evergreen/config/standard.yml.erb index e2171b1bd8..fe04de6837 100644 --- a/.evergreen/config/standard.yml.erb +++ b/.evergreen/config/standard.yml.erb @@ -1,148 +1,150 @@ -<% tt = %w(standalone replica-set sharded-cluster) %> +<% + topologies = %w( standalone replica-set sharded-cluster ) -buildvariants: - - matrix_name: "docker" - matrix_spec: - ruby: ["ruby-2.7"] - mongodb-version: "4.2" - topology: standalone - os: ubuntu1804 - preload: preload - display_name: "Docker ${os} ${mongodb-version} ${topology} ${ruby} ${preload}" - tasks: - - name: "test-docker" + # ruby-3.2 is available in the toolchain, but tests break. It will + # require some investigation. Once available: + # 1. set `latest_ruby` to ruby-3.2 + # 2. add ruby-3.2 to `recent_rubies` and `supported_mri_rubies` + # 3. replace ruby-3.1 with ruby-3.2 in `sample_mri_rubies`. - - matrix_name: "docker" - matrix_spec: - ruby: ["ruby-2.7"] - mongodb-version: "4.2" - topology: standalone - os: ubuntu1804 - preload: nopreload - display_name: "Docker ${os} ${mongodb-version} ${topology} ${ruby} ${preload}" - tasks: - - name: "test-docker" + # jruby-9.4 is available in the toolchain, but tests break. It will + # require some investigation. Once available: + # 1. replace jruby-9.3 with jruby-9.4 in `recent_rubies` and + # `sample_rubies`. + # 2. add jruby-9.4 to the front of `jrubies`. + + # latest_ruby = the most recently released, stable version of Ruby + # (make sure this version is being built by 10gen/mongo-ruby-toolchain) + latest_ruby = "ruby-3.1".inspect # so it gets quoted as a string + + # these are used for testing against a few recent ruby versions + recent_rubies = %w( ruby-3.1 jruby-9.3 ) + + # this is a list of the most most recent 3.x and 2.x MRI ruby versions + sample_mri_rubies = %w( ruby-3.1 ruby-2.7 ) + + # as above, but including the most recent JRuby release + sample_rubies = sample_mri_rubies + %w( jruby-9.3 ) + + # older Ruby versions provided by 10gen/mongo-ruby-toolchain + older_rubies = %w( ruby-3.0 ruby-2.7 ruby-2.6 ruby-2.5 ) + + # all supported JRuby versions provided by 10gen/mongo-ruby-toolchain + jrubies = %w( jruby-9.3 jruby-9.2 ) + + supported_mri_rubies = %w( ruby-3.1 ruby-3.0 + ruby-2.7 ruby-2.6 ruby-2.5 ) + + supported_rubies = supported_mri_rubies + jrubies + + # The latest stable version of MongoDB + latest_stable_mdb = "6.0".inspect # so it gets quoted as a string + + # A few of the most recent MongoDB versions + recent_mdb = %w( 6.0 5.3 ) + latest_5x_mdb = "5.3".inspect # so it gets quoted as a string +%> - - matrix_name: "mongo-latest" +buildvariants: + - matrix_name: "auth/ssl" matrix_spec: auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1"] - mongodb-version: ['latest'] - topology: <%= tt %> - os: ubuntu2004 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> + topology: <%= topologies %> + os: rhel8 + display_name: ${auth-and-ssl} ${ruby} ${topology} tasks: - name: "test-mlaunch" - - matrix_name: "mongo-6.0" + # 'latest' is broken until the QE2 changes are merged (RUBY-3211, RUBY-3226) + - matrix_name: "mongo-recent" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1"] + ruby: <%= recent_rubies %> + #mongodb-version: ['latest', '6.0'] mongodb-version: ['6.0'] - topology: <%= tt %> - os: ubuntu2004 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + topology: <%= topologies %> + os: ['rhel8', 'ubuntu2204'] + display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-5.3" + # Only JRuby-9.4 is built for arm in the current toolchain, but 9.4 has other + # issues. Either we fix those issues, or we build 9.3 for arm in the toolchain, + # and hope it fixes the issues... Until then, we can only test MRI ruby on arm. + # + # further: 'latest' is broken until the QE2 changes are merged (RUBY-3211, + # RUBY-3226) + - matrix_name: "mongo-recent-arm" matrix_spec: - auth-and-ssl: noauth-and-nossl - ruby: ["ruby-3.1"] - mongodb-version: ['5.3'] - topology: <%= tt %> - os: ubuntu2004 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + ruby: <%= latest_ruby %> + #mongodb-version: ['latest', '6.0'] + mongodb-version: ['6.0'] + topology: <%= topologies %> + os: 'rhel8-arm' + display_name: "${mongodb-version} ${os} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-4.2" + - matrix_name: "mongo-5.x" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-2.7", "ruby-2.5"] - mongodb-version: ['4.2'] - topology: <%= tt %> - os: ubuntu1804 + ruby: <%= sample_rubies %> + mongodb-version: ['5.3', '5.0'] + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "mongo-4.0" + - matrix_name: "mongo-4.x" matrix_spec: - auth-and-ssl: ["noauth-and-ssl", "auth-and-nossl"] - ruby: "ruby-2.6" - mongodb-version: ['4.0'] - topology: <%= tt %> - os: ubuntu1804 + ruby: <%= older_rubies %> + mongodb-version: ['4.4', '4.2', '4.0'] + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-3.6" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] ruby: "ruby-2.5" mongodb-version: ['3.6'] - topology: <%= tt %> - os: ubuntu1604 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "mongo-4.4" - matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.0", "ruby-2.7"] - mongodb-version: '4.4' - topology: <%= tt %> - os: ubuntu1804 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "mongo-5.0" - matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1", "ruby-2.7"] - mongodb-version: '5.0' - topology: '*' - os: ubuntu1804 + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "single-lb" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.0"] - mongodb-version: '5.0' + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> topology: load-balanced single-mongos: single-mongos - os: ubuntu2004 + os: rhel8 display_name: "${mongodb-version} ${topology} single-lb ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "mongo-5.0-api-version" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: ["ruby-3.1"] + ruby: <%= latest_ruby %> mongodb-version: '5.0' topology: standalone api-version-required: yes - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} api-version-required ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "single-mongos" matrix_spec: - auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] - ruby: "ruby-2.6" - mongodb-version: ['4.0', '4.2', '4.4'] + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> topology: "sharded-cluster" single-mongos: single-mongos - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} single-mongos ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" @@ -150,10 +152,10 @@ buildvariants: - matrix_name: "no-retry-reads" matrix_spec: retry-reads: no-retry-reads - ruby: "ruby-2.6" - mongodb-version: ["4.0"] - topology: <%= tt %> - os: ubuntu1804 + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}" tasks: - name: "test-mlaunch" @@ -161,10 +163,10 @@ buildvariants: - matrix_name: "no-retry-writes" matrix_spec: retry-writes: no-retry-writes - ruby: ["ruby-2.7"] - mongodb-version: ["4.0"] + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> topology: [replica-set, sharded-cluster] - os: ubuntu1804 + os: rhel8 display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}" tasks: - name: "test-mlaunch" @@ -173,20 +175,20 @@ buildvariants: matrix_spec: ruby: "ruby-2.5" mongodb-version: ['3.6', '4.0'] - topology: <%= tt %> + topology: <%= topologies %> storage-engine: mmapv1 - os: ubuntu1604 + os: rhel8 display_name: "${mongodb-version} ${topology} mmapv1 ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "lint-5.0" + - matrix_name: "lint" matrix_spec: lint: on - ruby: ["ruby-3.1", "ruby-2.7"] - mongodb-version: ["5.0"] + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> topology: '*' - os: ubuntu2004 + os: rhel8 display_name: "${mongodb-version} ${topology} ${lint} ${ruby}" tasks: - name: "test-mlaunch" @@ -194,10 +196,10 @@ buildvariants: - matrix_name: "fork" matrix_spec: fork: on - ruby: ["ruby-3.0", "ruby-2.7"] - mongodb-version: ["4.4"] - topology: <%= tt %> - os: ubuntu1804 + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} fork ${ruby}" tasks: - name: "test-mlaunch" @@ -205,10 +207,10 @@ buildvariants: - matrix_name: "solo" matrix_spec: solo: on - ruby: [ruby-3.1, ruby-3.0, ruby-2.7, ruby-2.6, ruby-2.5, jruby-9.2, jruby-9.3] - mongodb-version: ["4.4"] - topology: <%= tt %> - os: ubuntu1804 + ruby: <%= supported_rubies %> + mongodb-version: <%= latest_stable_mdb %> + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} solo ${ruby}" tasks: - name: "test-mlaunch" @@ -219,7 +221,7 @@ buildvariants: ruby: ["ruby-2.7"] mongodb-version: ['4.2', '4.0', '3.6'] topology: replica-set - os: ubuntu1604 + os: rhel8 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" @@ -227,372 +229,189 @@ buildvariants: - matrix_name: "stress" matrix_spec: stress: on - ruby: ["ruby-2.7"] - mongodb-version: ['5.0', '4.4'] + ruby: <%= latest_ruby %> + mongodb-version: <%= recent_mdb %> topology: replica-set - os: ubuntu2004 + os: rhel8 display_name: "${mongodb-version} ${topology} stress ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "x509-tests" - matrix_spec: - auth-and-ssl: "x509" - ruby: "ruby-2.7" - mongodb-version: "4.2" - topology: standalone - os: ubuntu1804 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" + # The X.509 tests are failing with exceptions being expected, but never + # raised. (RUBY-3267) + # + # - matrix_name: "x509-tests" + # matrix_spec: + # auth-and-ssl: "x509" + # ruby: <%= latest_ruby %> + # # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure + # # the server for certain auth mechanisms. Once run-tests.sh is made smart + # # enough to install mongosh, and then use either mongo or mongosh + # # (depending on server version and what's available), we can bump this to + # # the latest stable db version. + # mongodb-version: <%= latest_5x_mdb %> + # topology: standalone + # os: rhel8 + # display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" + # tasks: + # - name: "test-mlaunch" - matrix_name: "jruby-auth" matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: "jruby-9.3" - mongodb-version: "4.2" - topology: <%= tt %> - os: rhel80 + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: <%= jrubies.first %> + mongodb-version: <%= latest_stable_mdb %> + topology: <%= topologies %> + os: rhel8 display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "jruby-noauth" + - matrix_name: "zlib" matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "jruby-9.2" - mongodb-version: "3.6" - topology: <%= tt %> - os: ubuntu1804 - display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zlib-auth" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-2.7"] - mongodb-version: "4.4" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: <%= sample_rubies %> + mongodb-version: <%= latest_stable_mdb %> topology: "replica-set" compressor: 'zlib' - os: ubuntu1804 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zlib-auth-3.0" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-3.0"] - mongodb-version: "4.4" - topology: "standalone" - compressor: 'zlib' - os: ubuntu2004 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zlib-noauth" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "ruby-2.5" - mongodb-version: "3.6" - topology: replica-set - compressor: 'zlib' - os: ubuntu1604 + os: rhel8 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "snappy-auth" + - matrix_name: "snappy" matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-2.7"] - mongodb-version: "4.4" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: <%= sample_rubies %> + mongodb-version: <%= latest_stable_mdb %> topology: "replica-set" compressor: 'snappy' - os: ubuntu1804 + os: rhel8 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "snappy-auth-3" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-3.1"] - mongodb-version: "4.4" - topology: "standalone" - compressor: 'snappy' - os: ubuntu2004 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "snappy-noauth" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "ruby-2.5" - mongodb-version: ["3.6"] - topology: replica-set - compressor: 'snappy' - os: ubuntu1604 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - -# https://jira.mongodb.org/browse/RUBY-2723 -# Enable or remove when the ticket is resolved. -# - matrix_name: "snappy-jruby" -# matrix_spec: -# ruby: jruby-9.2 -# mongodb-version: "4.4" -# topology: replica-set -# compressor: 'snappy' -# os: ubuntu1804 -# display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" -# tasks: -# - name: "test-mlaunch" - + # the zstd-ruby gem does not support JRuby (explicitly). However, there is + # apparently a zstd-jni gem for JRuby that we could investigate here; if + # this test is ever supported to support jruby, the `sample_mri_rubies` + # reference should be replaced with `sample_rubies`. - matrix_name: "zstd-auth" matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-2.7"] - mongodb-version: "4.4" + auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ] + ruby: <%= sample_mri_rubies %> + mongodb-version: <%= latest_stable_mdb %> topology: "replica-set" compressor: 'zstd' - os: ubuntu1804 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - - - matrix_name: "zstd-auth-3.0" - matrix_spec: - auth-and-ssl: "auth-and-ssl" - ruby: ["ruby-3.0"] - mongodb-version: "4.4" - topology: "standalone" - compressor: 'zstd' - os: ubuntu1804 + os: rhel8 display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" tasks: - name: "test-mlaunch" - - matrix_name: "zstd-noauth" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: "ruby-2.5" - mongodb-version: "4.2" - topology: replica-set - compressor: 'zstd' - os: ubuntu1804 - display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" - tasks: - - name: "test-mlaunch" - -# - matrix_name: "zstd-jruby" -# matrix_spec: -# ruby: jruby-9.2 -# mongodb-version: "4.4" -# topology: replica-set -# compressor: 'zstd' -# os: ubuntu1804 -# display_name: "${compressor} ${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" -# tasks: -# - name: "test-mlaunch" - -# - matrix_name: "ruby-head" -# matrix_spec: -# auth-and-ssl: ["auth-and-ssl", "noauth-and-nossl"] -# ruby: ["ruby-head"] -# mongodb-version: "4.2" -# topology: "*" -# os: ubuntu1804 -# display_name: "${mongodb-version} ${topology} ${auth-and-ssl} ${ruby}" -# tasks: -# - name: "test-mlaunch" - - matrix_name: "activesupport" matrix_spec: - ruby: ["ruby-3.0", "ruby-2.7"] - mongodb-version: '4.4' + ruby: <%= sample_rubies %> + mongodb-version: <%= latest_stable_mdb %> topology: replica-set as: as - os: ubuntu1804 + os: rhel8 display_name: "AS ${mongodb-version} ${topology} ${ruby}" tasks: - name: "test-mlaunch" - matrix_name: "bson" matrix_spec: - ruby: [ruby-3.1, ruby-2.7, jruby-9.2] - mongodb-version: '4.4' + ruby: <%= sample_rubies %> + mongodb-version: <%= latest_stable_mdb %> topology: replica-set bson: "*" - os: rhel80 + os: rhel8 display_name: "AS ${mongodb-version} ${topology} ${ruby} ${bson}" tasks: - name: "test-mlaunch" - - matrix_name: "kerberos-integration-ubuntu" - matrix_spec: - # Other Rubies segfault - ruby: ruby-2.5 - display_name: "Kerberos integration Ubuntu ${ruby}" - run_on: - - ubuntu1804-small - tasks: - - name: "test-kerberos-integration" - - # All skipped because of segfaults - #- matrix_name: "kerberos-integration-rhel" - # matrix_spec: - # # Other Rubies segfault - # ruby: [ruby-2.7] - # os: ubuntu1804 - # display_name: "Kerberos integration RHEL ${ruby} ${os}" - # tasks: - # - name: "test-kerberos-integration" - - # Kerberos integration tests on debian are omitted due to segfaults: - # https://jira.mongodb.org/browse/RUBY-1534 + # kerberos integration tests are broken (RUBY-3266) + # - matrix_name: "kerberos-integration" + # matrix_spec: + # ruby: <%= sample_rubies %> + # os: rhel8 + # display_name: "Kerberos integration ${os} ${ruby}" + # tasks: + # - name: "test-kerberos-integration" - matrix_name: "kerberos-unit" matrix_spec: - ruby: "ruby-2.6" - mongodb-version: "4.2" + ruby: <%= latest_ruby %> + mongodb-version: <%= latest_stable_mdb %> topology: standalone - os: ubuntu1804 + os: rhel8 auth-and-ssl: kerberos display_name: "Kerberos Tests" tasks: - name: "test-kerberos" - - matrix_name: "fle-latest" + # 'latest' is broken until the QE2 changes are merged (RUBY-3211, RUBY-3226) + # + # - matrix_name: "fle-latest" + # matrix_spec: + # auth-and-ssl: "noauth-and-nossl" + # ruby: <%= latest_ruby %> + # topology: [replica-set, sharded-cluster] + # mongodb-version: [ 'latest' ] + # os: rhel8 + # fle: helper + # display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" + # tasks: + # - name: "test-fle" + + - matrix_name: "fle" matrix_spec: auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-3.1] + ruby: <%= sample_mri_rubies %> topology: [replica-set, sharded-cluster] - mongodb-version: ['latest'] - os: ubuntu2004 + mongodb-version: [ '6.0', '4.4', '4.2', '4.0' ] + os: rhel8 fle: helper - docker-distro: ubuntu2004 - display_name: "FLE: ${mongodb-version} ${ruby}" + display_name: "FLE: ${mongodb-version} ${topology} ${ruby}" tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-6.0" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-3.1, ruby-3.0, ruby-2.7] - topology: [replica-set, sharded-cluster] - mongodb-version: ['6.0'] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu2004 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-4.4" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-3.1] - topology: standalone - mongodb-version: ['4.4'] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu1804 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-4.2" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-2.5] - topology: [standalone, replica-set, sharded-cluster] - mongodb-version: ["4.2"] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu1804 - display_name: "FLE: ${topology} ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - - matrix_name: "fle-4.0" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [ruby-2.6] - topology: standalone - mongodb-version: ["4.0"] - os: ubuntu2004 - fle: path - docker-distro: ubuntu1804 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" - - # https://jira.mongodb.org/browse/RUBY-3217 - - matrix_name: "fle-jruby" - matrix_spec: - auth-and-ssl: "noauth-and-nossl" - ruby: [jruby-9.2, jruby-9.3] - topology: standalone - mongodb-version: ['5.0'] - os: ubuntu2004 - fle: helper - docker-distro: ubuntu2004 - display_name: "FLE: ${mongodb-version} ${ruby}" - tasks: - - name: "test-fle-via-docker" + - name: "test-fle" - matrix_name: aws-auth-regular matrix_spec: - auth-and-ssl: aws-regular - ruby: [ruby-2.7] + auth-and-ssl: [ aws-regular, aws-assume-role, aws-ec2, aws-ecs, aws-web-identity ] + ruby: <%= latest_ruby %> topology: standalone - mongodb-version: '4.4' - os: ubuntu1804 - display_name: "AWS auth regular: ${mongodb-version} ${ruby}" + # needs the latest_5x_mdb because run-tests.sh uses `mongo` to configure + # the server for certain auth mechanisms. Once run-tests.sh is made smart + # enough to install mongosh, and then use either mongo or mongosh + # (depending on server version and what's available), we can bump this to + # the latest stable db version. + mongodb-version: <%= latest_5x_mdb %> + os: rhel8 + display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}" tasks: - name: "test-aws-auth" - - matrix_name: aws-auth-temporary - matrix_spec: - auth-and-ssl: [aws-assume-role, aws-ec2, aws-ecs, aws-web-identity] - ruby: [ruby-3.1] - topology: standalone - mongodb-version: '4.4' - os: ubuntu1804 - display_name: "AWS auth temporary: ${auth-and-ssl} ${mongodb-version} ${ruby}" - tasks: - - name: "test-aws-auth" - - # No JRuby due to https://github.com/jruby/jruby-openssl/issues/210 - # TODO Add ruby-3.0: RUBY-2717 - <%|= standard_debian_rubies(%w(ruby-2.5 ruby-2.6 ruby-2.7), key: 'docker-distro') do %> - matrix_name: ocsp-verifier + - matrix_name: ocsp-verifier matrix_spec: ocsp-verifier: true # No JRuby due to https://github.com/jruby/jruby-openssl/issues/210 - ruby: [ruby-3.0, ruby-2.7, ruby-2.6, ruby-2.5] + ruby: <%= supported_mri_rubies %> topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: <%= latest_stable_mdb %> + os: rhel8 display_name: "OCSP verifier: ${mongodb-version} ${ruby}" tasks: - - name: test-via-docker - <%| end %> + - name: test-mlaunch - matrix_name: ocsp-must-staple matrix_spec: ocsp-algorithm: ecdsa ocsp-must-staple: on ocsp-delegate: on - ruby: [ruby-3.0, ruby-2.7] + ruby: <%= sample_mri_rubies %> topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: <%= latest_stable_mdb %> + os: rhel8 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - must staple: ${mongodb-version} ${ruby}" tasks: @@ -602,10 +421,10 @@ buildvariants: matrix_spec: ocsp-algorithm: rsa ocsp-status: unknown - ruby: [ruby-3.0, ruby-2.7] + ruby: <%= sample_mri_rubies %> topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: <%= latest_stable_mdb %> + os: rhel8 auth-and-ssl: noauth-and-ssl display_name: "OCSP integration - unknown: ${mongodb-version} ${ruby}" tasks: @@ -632,10 +451,10 @@ buildvariants: ocsp-delegate: '*' ocsp-connectivity: <%= outcome %> extra-uri-options: "<%= extra_uri_options %>" - ruby: [ruby-3.0, ruby-2.7] + ruby: <%= sample_mri_rubies %> topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: <%= latest_stable_mdb %> + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${extra-uri-options} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch @@ -653,21 +472,21 @@ buildvariants: ocsp-status: [valid, unknown] ocsp-delegate: '*' ocsp-connectivity: pass - ruby: jruby-9.2 + ruby: <%= jrubies.first %> topology: standalone - mongodb-version: '4.4' - os: ubuntu2004 + mongodb-version: <%= latest_stable_mdb %> + os: rhel8 display_name: "OCSP connectivity: ${ocsp-algorithm} ${ocsp-status} ${ocsp-delegate} ${mongodb-version} ${ruby}" tasks: - name: test-mlaunch - matrix_name: testgcpkms-variant matrix_spec: - ruby: ruby-3.0 + ruby: <%= latest_ruby %> fle: helper topology: standalone - os: debian11 - mongodb-version: 6.0 + os: rhel8 + mongodb-version: <%= latest_stable_mdb %> display_name: "GCP KMS" tasks: - name: testgcpkms_task_group @@ -678,7 +497,7 @@ buildvariants: ruby: ruby-3.0 fle: helper topology: standalone - os: debian11 + os: debian11 # could eventually look at updating this to rhel80 mongodb-version: 6.0 display_name: "AZURE KMS" tasks: @@ -687,21 +506,19 @@ buildvariants: - matrix_name: "atlas" matrix_spec: - ruby: ["ruby-2.5", "ruby-2.6", "ruby-2.7", "ruby-3.0", "ruby-3.1", "jruby-9.2"] + ruby: <%= supported_rubies %> + os: rhel8 display_name: "Atlas tests ${ruby}" - run_on: - - ubuntu1804-small tasks: - name: test-atlas - matrix_name: "serverless" matrix_spec: # https://jira.mongodb.org/browse/RUBY-3217 - # ruby: ["ruby-2.5", "ruby-2.6", "ruby-2.7", "ruby-3.0", "ruby-3.1", "jruby-9.3"] - ruby: ["ruby-2.5", "ruby-2.6", "ruby-2.7", "ruby-3.0", "ruby-3.1"] + # ruby: <%= supported_rubies %> + ruby: <%= supported_mri_rubies %> fle: path + os: rhel8 display_name: "Atlas serverless ${ruby} single mongos" - run_on: - - ubuntu2004-small tasks: - name: test-serverless diff --git a/.evergreen/run-tests-gcp.sh b/.evergreen/run-tests-gcp.sh index 0c84ebc765..baccf6404b 100755 --- a/.evergreen/run-tests-gcp.sh +++ b/.evergreen/run-tests-gcp.sh @@ -4,6 +4,7 @@ set -ex . `dirname "$0"`/../spec/shared/shlib/distro.sh . `dirname "$0"`/../spec/shared/shlib/set_env.sh +. `dirname "$0"`/../spec/shared/shlib/server.sh . `dirname "$0"`/functions.sh set_env_vars diff --git a/.evergreen/run-tests-kerberos-integration.sh b/.evergreen/run-tests-kerberos-integration.sh index 3d9eb49e73..e7002d898e 100755 --- a/.evergreen/run-tests-kerberos-integration.sh +++ b/.evergreen/run-tests-kerberos-integration.sh @@ -61,6 +61,22 @@ configure_kerberos_ip_addr echo "Install dependencies" export BUNDLE_GEMFILE=gemfiles/mongo_kerberos.gemfile bundle_install + +# need to build the native extension, since it doesn't seem to build correctly +# when installed via github. +curdir=`pwd` +cd `bundle info --path mongo_kerberos` + +# unset the BUNDLE_GEMFILE variable so the mongo_kerberos rakefile doesn't +# get confused by it... +saved_gemfile=$BUNDLE_GEMFILE +unset BUNDLE_GEMFILE + +bundle install +rake compile +cd $curdir +export BUNDLE_GEMFILE=$saved_gemfile + bundle list export MONGO_RUBY_DRIVER_KERBEROS=1 diff --git a/.evergreen/run-tests-serverless.sh b/.evergreen/run-tests-serverless.sh index faebcf2ca4..91171c1133 100755 --- a/.evergreen/run-tests-serverless.sh +++ b/.evergreen/run-tests-serverless.sh @@ -26,12 +26,18 @@ else exit -1 fi +if ! ( test -f /etc/os-release & grep -q ^ID.*rhel /etc/os-release & grep -q ^VERSION_ID.*8.0 /etc/os-release ); then + echo Serverless tests assume rhel80 + echo If this has changed, update .evergreen/run-tests-serverless.sh as necessary + exit -1 +fi + mkdir libmongocrypt cd libmongocrypt curl --retry 3 -fLo libmongocrypt-all.tar.gz "https://s3.amazonaws.com/mciuploads/libmongocrypt/all/master/latest/libmongocrypt-all.tar.gz" tar xf libmongocrypt-all.tar.gz -# We assume that serverless tests are always use ubuntu2004 -export LIBMONGOCRYPT_PATH=`pwd`/ubuntu2004-64/nocrypto/lib/libmongocrypt.so +# We assume that serverless tests always use rhel80 +export LIBMONGOCRYPT_PATH=`pwd`/rhel-80-64-bit/nocrypto/lib64/libmongocrypt.so cd - cd .evergreen/csfle diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 7209663dd1..a2203eb79a 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -47,6 +47,12 @@ if test "$DOCKER_PRELOAD" != 1; then install_mlaunch_venv fi +# Make sure cmake is installed (in case we need to install the libmongocrypt +# helper) +if [ "$FLE" = "helper" ]; then + install_cmake +fi + # Launching mongod under $MONGO_ORCHESTRATION_HOME # makes its log available through log collecting machinery diff --git a/.evergreen/update-evergreen-configs b/.evergreen/update-evergreen-configs index a57b4e5d16..b1f4296649 100755 --- a/.evergreen/update-evergreen-configs +++ b/.evergreen/update-evergreen-configs @@ -36,36 +36,6 @@ EOT def get_binding binding end - - DEBIAN_FOR_RUBY = { - 'ruby-2.3' => 'debian92', - 'ruby-2.4' => 'debian92', - 'ruby-2.5' => 'debian10', - 'ruby-2.6' => 'debian10', - 'ruby-2.7' => 'debian10', - 'ruby-3.0' => 'debian10', - } - - def standard_debian_rubies(rubies, key: nil, &block) - rubies.flatten! - text = block.call - contents = YAML.load(text) - out = rubies.map do |ruby| - contents.merge( - 'matrix_name' => "#{contents['matrix_name']} - #{ruby}", - 'matrix_spec' => contents['matrix_spec'].merge( - 'ruby' => ruby, - key || 'os' => DEBIAN_FOR_RUBY.fetch(ruby), - ), - ) - end.to_yaml - text =~ /\A\n?(\s+)/ - unless text - raise "Couldn't figure out indentation level" - end - indent = ' ' * ($1.length - 2) - "\n" + out.sub(/\A---.*\n/, indent).gsub("\n", "\n#{indent}") - end end Runner.new.run diff --git a/.gitmodules b/.gitmodules index 366d171c3a..6d428f359d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,4 @@ url = https://github.com/mongodb-labs/drivers-evergreen-tools [submodule "spec/shared"] path = spec/shared - url = https://github.com/mongodb-labs/mongo-ruby-spec-shared + url = git@github.com:mongodb-labs/mongo-ruby-spec-shared.git diff --git a/spec/lite_spec_helper.rb b/spec/lite_spec_helper.rb index 22a98d7b8c..0394b97f3b 100644 --- a/spec/lite_spec_helper.rb +++ b/spec/lite_spec_helper.rb @@ -110,6 +110,15 @@ class ExampleTimeout < StandardError; end config.include(MongosMacros) config.extend(Mongo::Macros) + # Used for spec/solo/* + def require_solo + before(:all) do + unless %w(1 true yes).include?(ENV['SOLO']) + skip 'Set SOLO=1 in environment to run solo tests' + end + end + end + if SpecConfig.instance.ci? SdamFormatterIntegration.subscribe config.add_formatter(JsonExtFormatter, File.join(File.dirname(__FILE__), '../tmp/rspec.json')) diff --git a/spec/shared b/spec/shared index faf76703ec..81298ee8ee 160000 --- a/spec/shared +++ b/spec/shared @@ -1 +1 @@ -Subproject commit faf76703ec5aa2fec37a84f3a73b86913c4ff1c4 +Subproject commit 81298ee8ee4bac7f446abcbd13045332396d05fe diff --git a/spec/solo/clean_exit_spec.rb b/spec/solo/clean_exit_spec.rb index 1693b379e9..80e80fd030 100644 --- a/spec/solo/clean_exit_spec.rb +++ b/spec/solo/clean_exit_spec.rb @@ -2,18 +2,11 @@ # rubocop:todo all require 'mongo' +require 'lite_spec_helper' describe 'Clean exit' do - - before(:all) do - unless %w(1 true yes).include?(ENV['SOLO']) - skip 'Set SOLO=1 in environment to run solo tests' - end - - if %w(1 true yes).include?(ENV['EXTERNAL_DISABLED']) - skip "Test requires external connectivity" - end - end + require_external_connectivity + require_solo context 'with SRV URI' do diff --git a/spec/support/shared/app_metadata.rb b/spec/support/shared/app_metadata.rb index 390e847245..8f44ac78c7 100644 --- a/spec/support/shared/app_metadata.rb +++ b/spec/support/shared/app_metadata.rb @@ -1,6 +1,18 @@ # frozen_string_literal: true # rubocop:todo all +def target_arch + @target_arch ||= begin + uname = `uname -a`.strip + case uname + when /aarch/ then "aarch64" + when /x86/ then "x86_64" + when /arm/ then "arm64" + else raise "unrecognized architecture: #{uname.inspect}" + end + end +end + shared_examples 'app metadata document' do let(:app_metadata) do described_class.new({}) @@ -27,7 +39,7 @@ # Ruby 2.7.3 uses linux. %w(linux linux-gnu).should include(document[:client][:os][:name]) end - document[:client][:os][:architecture].should == 'x86_64' + document[:client][:os][:architecture].should == target_arch end end @@ -45,7 +57,7 @@ else document[:client][:os][:name].should =~ /darwin\d+/ end - document[:client][:os][:architecture].should == 'x86_64' + document[:client][:os][:architecture].should == target_arch end end