diff --git a/.evergreen/ci_matrix_constants.js b/.evergreen/ci_matrix_constants.js index cb8c2c59294..7da86b5787b 100644 --- a/.evergreen/ci_matrix_constants.js +++ b/.evergreen/ci_matrix_constants.js @@ -1,12 +1,13 @@ -const MONGODB_VERSIONS = ['latest', 'rapid', '6.0', '5.0', '4.4', '4.2', '4.0', '3.6']; +const MONGODB_VERSIONS = ['latest', 'rapid', '7.0', '6.0', '5.0', '4.4', '4.2', '4.0', '3.6']; const versions = [ { codeName: 'erbium', versionNumber: 12 }, { codeName: 'fermium', versionNumber: 14 }, { codeName: 'gallium', versionNumber: 16 }, - { codeName: 'hydrogen', versionNumber: 18 } + { codeName: 'hydrogen', versionNumber: 18 }, + { codeName: 'iron', versionNumber: 20 } ]; -const NODE_VERSIONS = versions.map(({ codeName }) => codeName); -NODE_VERSIONS.sort(); +const NODE_VERSIONS = versions.map(({ versionNumber }) => versionNumber); +NODE_VERSIONS.sort((a, b) => a - b); const LOWEST_LTS = NODE_VERSIONS[0]; const LATEST_LTS = NODE_VERSIONS[NODE_VERSIONS.length - 1]; @@ -15,6 +16,11 @@ const AWS_AUTH_VERSIONS = ['latest', '6.0', '5.0', '4.4']; const TLS_VERSIONS = ['latest', '6.0', '5.0', '4.4', '4.2']; const DEFAULT_OS = 'rhel80-large'; +const WINDOWS_OS = 'windows-vsCurrent-large'; +const MACOS_OS = 'macos-1100'; +const UBUNTU_OS = 'ubuntu1804-large'; +const UBUNTU_22_OS = 'ubuntu2204-large' +const DEBIAN_OS = 'debian11-small'; module.exports = { MONGODB_VERSIONS, @@ -25,5 +31,10 @@ module.exports = { TOPOLOGIES, AWS_AUTH_VERSIONS, TLS_VERSIONS, - DEFAULT_OS + DEFAULT_OS, + WINDOWS_OS, + MACOS_OS, + UBUNTU_OS, + UBUNTU_22_OS, + DEBIAN_OS }; diff --git a/.evergreen/config.in.yml b/.evergreen/config.in.yml index 8f7f190f9fb..f0527886226 100644 --- a/.evergreen/config.in.yml +++ b/.evergreen/config.in.yml @@ -76,13 +76,15 @@ functions: params: script: | ${PREPARE_SHELL} - DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/build-mongohouse-local.sh + DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/pull-mongohouse-image.sh - command: shell.exec params: background: true script: | ${PREPARE_SHELL} - DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/run-mongohouse-local.sh + DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/run-mongohouse-image.sh + sleep 1 + docker ps "bootstrap kms servers": - command: subprocess.exec @@ -352,6 +354,19 @@ functions: args: - "${PROJECT_DIRECTORY}/.evergreen/run-mongosh-scope-test.sh" + + "reset aws instance profile": + - command: shell.exec + params: + shell: "bash" + script: | + ${PREPARE_SHELL} + cd "${DRIVERS_TOOLS}/.evergreen/auth_aws" + if [ -f "./aws_e2e_setup.json" ]; then + . ./activate-authawsvenv.sh + python ./lib/aws_assign_instance_profile.py + fi + "cleanup": - command: shell.exec params: @@ -400,7 +415,7 @@ functions: working_dir: "src" script: | ${PREPARE_SHELL} - NODE_LTS_NAME=${NODE_LTS_NAME} NPM_OPTIONS=${NPM_OPTIONS}\ + NODE_LTS_VERSION=${NODE_LTS_VERSION} NPM_OPTIONS=${NPM_OPTIONS} NPM_VERSION=${NPM_VERSION}\ bash ${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh "run atlas tests": @@ -424,7 +439,7 @@ functions: rm -f ./prepare_atlas_connectivity.sh export PROJECT_DIRECTORY="$(pwd)" - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-atlas-tests.sh @@ -454,7 +469,7 @@ functions: export PYTHON_BINARY=$([ "Windows_NT" = "$OS" ] && echo "/cygdrive/c/python/python38/python.exe" || echo "/opt/mongodbtoolchain/v3/bin/python3") export PROJECT_DIRECTORY="$(pwd)" export DRIVERS_TOOLS="${DRIVERS_TOOLS}" - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' export MONGODB_URI="${MONGODB_URI}" export SSL="${SSL}" @@ -475,7 +490,7 @@ functions: export KRB5_KEYTAB='${gssapi_auth_keytab_base64}' export KRB5_PRINCIPAL='${gssapi_auth_principal}' export MONGODB_URI='${gssapi_auth_mongodb_uri}' - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-kerberos-tests.sh @@ -487,7 +502,7 @@ functions: script: | export PROJECT_DIRECTORY="$(pwd)" export MONGODB_URI='${plain_auth_mongodb_uri}' - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-ldap-tests.sh @@ -499,7 +514,7 @@ functions: script: | export PROJECT_DIRECTORY="$(pwd)" export MONGODB_URI='mongodb://mhuser:pencil@localhost' - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-data-lake-tests.sh @@ -510,7 +525,7 @@ functions: working_dir: "src" script: | export PROJECT_DIRECTORY="$(pwd)" - export NODE_LTS_NAME=${NODE_LTS_NAME} + export NODE_LTS_VERSION=${NODE_LTS_VERSION} export DRIVERS_TOOLS="${DRIVERS_TOOLS}" export SSL_CA_FILE="${SSL_CA_FILE}" export SSL_KEY_FILE="${SSL_KEY_FILE}" @@ -1019,6 +1034,12 @@ functions: - ${PROJECT_DIRECTORY}/.evergreen/run-benchmarks.sh tasks: + - name: 'test-atlas-data-lake' + tags: ["datalake", "mongohouse"] + commands: + - func: 'install dependencies' + - func: 'bootstrap mongohoused' + - func: 'run data lake tests' - name: "test-serverless" tags: ["serverless"] commands: @@ -1032,14 +1053,16 @@ tasks: - performance exec_timeout_secs: 3600 commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '18' } + - {key: NPM_VERSION, value: '9'} + - {key: VERSION, value: rapid } + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NODE_LTS_NAME: hydrogen - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: server - AUTH: noauth - func: run spec driver benchmarks - command: perf.send params: @@ -1087,6 +1110,7 @@ pre: - func: "make files executable" post: + - func: "reset aws instance profile" - func: "upload test results" - func: "upload coverage report" - func: "cleanup" diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 297f3d38b3c..3b3b23d8000 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -51,13 +51,15 @@ functions: params: script: | ${PREPARE_SHELL} - DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/build-mongohouse-local.sh + DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/pull-mongohouse-image.sh - command: shell.exec params: background: true script: | ${PREPARE_SHELL} - DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/run-mongohouse-local.sh + DRIVERS_TOOLS="${DRIVERS_TOOLS}" bash ${DRIVERS_TOOLS}/.evergreen/atlas_data_lake/run-mongohouse-image.sh + sleep 1 + docker ps bootstrap kms servers: - command: subprocess.exec params: @@ -310,6 +312,17 @@ functions: binary: bash args: - ${PROJECT_DIRECTORY}/.evergreen/run-mongosh-scope-test.sh + reset aws instance profile: + - command: shell.exec + params: + shell: bash + script: | + ${PREPARE_SHELL} + cd "${DRIVERS_TOOLS}/.evergreen/auth_aws" + if [ -f "./aws_e2e_setup.json" ]; then + . ./activate-authawsvenv.sh + python ./lib/aws_assign_instance_profile.py + fi cleanup: - command: shell.exec params: @@ -354,7 +367,7 @@ functions: working_dir: src script: | ${PREPARE_SHELL} - NODE_LTS_NAME=${NODE_LTS_NAME} NPM_OPTIONS=${NPM_OPTIONS}\ + NODE_LTS_VERSION=${NODE_LTS_VERSION} NPM_OPTIONS=${NPM_OPTIONS} NPM_VERSION=${NPM_VERSION}\ bash ${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh run atlas tests: - command: shell.exec @@ -377,7 +390,7 @@ functions: rm -f ./prepare_atlas_connectivity.sh export PROJECT_DIRECTORY="$(pwd)" - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-atlas-tests.sh run socks5 tests: @@ -411,7 +424,7 @@ functions: export DRIVERS_TOOLS="${DRIVERS_TOOLS}" - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' export MONGODB_URI="${MONGODB_URI}" @@ -438,7 +451,7 @@ functions: export KRB5_KEYTAB='${gssapi_auth_keytab_base64}' export KRB5_PRINCIPAL='${gssapi_auth_principal}' export MONGODB_URI='${gssapi_auth_mongodb_uri}' - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-kerberos-tests.sh run ldap tests: @@ -449,7 +462,7 @@ functions: script: | export PROJECT_DIRECTORY="$(pwd)" export MONGODB_URI='${plain_auth_mongodb_uri}' - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-ldap-tests.sh run data lake tests: @@ -460,7 +473,7 @@ functions: script: | export PROJECT_DIRECTORY="$(pwd)" export MONGODB_URI='mongodb://mhuser:pencil@localhost' - export NODE_LTS_NAME='${NODE_LTS_NAME}' + export NODE_LTS_VERSION='${NODE_LTS_VERSION}' bash ${PROJECT_DIRECTORY}/.evergreen/run-data-lake-tests.sh run tls tests: @@ -470,7 +483,7 @@ functions: working_dir: src script: | export PROJECT_DIRECTORY="$(pwd)" - export NODE_LTS_NAME=${NODE_LTS_NAME} + export NODE_LTS_VERSION=${NODE_LTS_VERSION} export DRIVERS_TOOLS="${DRIVERS_TOOLS}" export SSL_CA_FILE="${SSL_CA_FILE}" export SSL_KEY_FILE="${SSL_KEY_FILE}" @@ -959,6 +972,14 @@ functions: args: - ${PROJECT_DIRECTORY}/.evergreen/run-benchmarks.sh tasks: + - name: test-atlas-data-lake + tags: + - datalake + - mongohouse + commands: + - func: install dependencies + - func: bootstrap mongohoused + - func: run data lake tests - name: test-serverless tags: - serverless @@ -972,14 +993,16 @@ tasks: - performance exec_timeout_secs: 3600 commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '18'} + - {key: NPM_VERSION, value: '9'} + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NODE_LTS_NAME: hydrogen - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: server - AUTH: noauth - func: run spec driver benchmarks - command: perf.send params: @@ -989,12 +1012,15 @@ tasks: - latest - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-latest-replica_set @@ -1002,12 +1028,15 @@ tasks: - latest - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-latest-sharded_cluster @@ -1015,12 +1044,15 @@ tasks: - latest - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-rapid-server @@ -1028,12 +1060,15 @@ tasks: - rapid - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-rapid-replica_set @@ -1041,12 +1076,15 @@ tasks: - rapid - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-rapid-sharded_cluster @@ -1054,12 +1092,63 @@ tasks: - rapid - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: bootstrap kms servers + - func: run tests + - name: test-7.0-server + tags: + - '7.0' + - server + commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: bootstrap kms servers + - func: run tests + - name: test-7.0-replica_set + tags: + - '7.0' + - replica_set + commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - func: install dependencies + - func: bootstrap mongo-orchestration + - func: bootstrap kms servers + - func: run tests + - name: test-7.0-sharded_cluster + tags: + - '7.0' + - sharded_cluster + commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-6.0-server @@ -1067,12 +1156,15 @@ tasks: - '6.0' - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-6.0-replica_set @@ -1080,12 +1172,15 @@ tasks: - '6.0' - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-6.0-sharded_cluster @@ -1093,12 +1188,15 @@ tasks: - '6.0' - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-5.0-server @@ -1106,12 +1204,15 @@ tasks: - '5.0' - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-5.0-replica_set @@ -1119,12 +1220,15 @@ tasks: - '5.0' - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-5.0-sharded_cluster @@ -1132,12 +1236,15 @@ tasks: - '5.0' - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.4-server @@ -1145,12 +1252,15 @@ tasks: - '4.4' - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.4-replica_set @@ -1158,12 +1268,15 @@ tasks: - '4.4' - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.4-sharded_cluster @@ -1171,12 +1284,15 @@ tasks: - '4.4' - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.2-server @@ -1184,12 +1300,15 @@ tasks: - '4.2' - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.2-replica_set @@ -1197,12 +1316,15 @@ tasks: - '4.2' - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.2-sharded_cluster @@ -1210,12 +1332,15 @@ tasks: - '4.2' - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.0-server @@ -1223,12 +1348,15 @@ tasks: - '4.0' - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.0' - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.0-replica_set @@ -1236,12 +1364,15 @@ tasks: - '4.0' - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.0' - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-4.0-sharded_cluster @@ -1249,12 +1380,15 @@ tasks: - '4.0' - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.0' - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-3.6-server @@ -1262,12 +1396,15 @@ tasks: - '3.6' - server commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '3.6'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '3.6' - TOPOLOGY: server - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-3.6-replica_set @@ -1275,12 +1412,15 @@ tasks: - '3.6' - replica_set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '3.6'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '3.6' - TOPOLOGY: replica_set - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-3.6-sharded_cluster @@ -1288,12 +1428,15 @@ tasks: - '3.6' - sharded_cluster commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '3.6'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '3.6' - TOPOLOGY: sharded_cluster - AUTH: auth - func: bootstrap kms servers - func: run tests - name: test-latest-server-v1-api @@ -1302,41 +1445,41 @@ tasks: - server - v1-api commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: REQUIRE_API_VERSION, value: '1'} + - {key: AUTH, value: auth} + - {key: MONGODB_API_VERSION, value: '1'} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: server - REQUIRE_API_VERSION: '1' - AUTH: auth - func: bootstrap kms servers - func: run tests - vars: - MONGODB_API_VERSION: '1' - name: test-atlas-connectivity tags: - atlas-connect commands: - func: install dependencies - func: run atlas tests - - name: test-atlas-data-lake - commands: - - func: install dependencies - - func: bootstrap mongohoused - - func: run data lake tests - name: test-5.0-load-balanced tags: - latest - sharded_cluster - load_balancer commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: sharded_cluster - AUTH: auth - LOAD_BALANCER: 'true' - func: start-load-balancer - func: run-lb-tests - func: stop-load-balancer @@ -1346,13 +1489,16 @@ tasks: - sharded_cluster - load_balancer commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: sharded_cluster - AUTH: auth - LOAD_BALANCER: 'true' - func: start-load-balancer - func: run-lb-tests - func: stop-load-balancer @@ -1362,13 +1508,16 @@ tasks: - sharded_cluster - load_balancer commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: auth} + - {key: LOAD_BALANCER, value: 'true'} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: sharded_cluster - AUTH: auth - LOAD_BALANCER: 'true' - func: start-load-balancer - func: run-lb-tests - func: stop-load-balancer @@ -1389,935 +1538,1120 @@ tasks: - name: test-socks5 tags: [] commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - func: bootstrap kms servers - func: run socks5 tests - name: test-socks5-tls tags: [] commands: + - command: expansions.update + type: setup + params: + updates: + - {key: SSL, value: ssl} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - SSL: ssl - VERSION: latest - TOPOLOGY: replica_set - func: run socks5 tests - vars: - SSL: ssl - name: test-zstd-compression tags: - latest - zstd commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: COMPRESSOR, value: zstd} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - AUTH: auth - COMPRESSOR: zstd - func: run-compression-tests - name: test-snappy-compression tags: - latest - snappy commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: auth} + - {key: COMPRESSOR, value: snappy} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - AUTH: auth - COMPRESSOR: snappy - func: run-compression-tests - name: test-tls-support-latest tags: - tls-support commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - SSL: ssl - TOPOLOGY: server - func: run tls tests - name: test-tls-support-6.0 tags: - tls-support commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - SSL: ssl - TOPOLOGY: server - func: run tls tests - name: test-tls-support-5.0 tags: - tls-support commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - SSL: ssl - TOPOLOGY: server - func: run tls tests - name: test-tls-support-4.4 tags: - tls-support commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - SSL: ssl - TOPOLOGY: server - func: run tls tests - name: test-tls-support-4.2 tags: - tls-support commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: SSL, value: ssl} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - SSL: ssl - TOPOLOGY: server - func: run tls tests - name: aws-latest-auth-test-run-aws-auth-test-with-regular-aws-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-latest-auth-test-run-aws-auth-test-with-assume-role-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-latest-auth-test-run-aws-auth-test-with-aws-EC2-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-latest-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-latest-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-latest-auth-test-run-aws-ECS-auth-test commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-latest-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-latest-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-latest-auth-test-run-aws-auth-test-with-regular-aws-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-latest-auth-test-run-aws-auth-test-with-assume-role-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-latest-auth-test-run-aws-auth-test-with-aws-EC2-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-latest-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-latest-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-latest-auth-test-run-aws-ECS-auth-test-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-latest-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-latest-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: latest} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: latest - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-6.0-auth-test-run-aws-auth-test-with-regular-aws-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-6.0-auth-test-run-aws-auth-test-with-assume-role-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-6.0-auth-test-run-aws-auth-test-with-aws-EC2-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-6.0-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-6.0-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-6.0-auth-test-run-aws-ECS-auth-test commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-6.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-6.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-6.0-auth-test-run-aws-auth-test-with-regular-aws-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-6.0-auth-test-run-aws-auth-test-with-assume-role-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-6.0-auth-test-run-aws-auth-test-with-aws-EC2-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-6.0-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-6.0-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-6.0-auth-test-run-aws-ECS-auth-test-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-6.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-6.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '6.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-5.0-auth-test-run-aws-auth-test-with-regular-aws-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-5.0-auth-test-run-aws-auth-test-with-assume-role-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-5.0-auth-test-run-aws-auth-test-with-aws-EC2-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-5.0-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-5.0-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-5.0-auth-test-run-aws-ECS-auth-test commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-5.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-5.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-5.0-auth-test-run-aws-auth-test-with-regular-aws-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-5.0-auth-test-run-aws-auth-test-with-assume-role-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-5.0-auth-test-run-aws-auth-test-with-aws-EC2-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-5.0-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-5.0-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-5.0-auth-test-run-aws-ECS-auth-test-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-5.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-5.0-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '5.0'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-4.4-auth-test-run-aws-auth-test-with-regular-aws-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-4.4-auth-test-run-aws-auth-test-with-assume-role-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-4.4-auth-test-run-aws-auth-test-with-aws-EC2-credentials commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-4.4-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-4.4-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-4.4-auth-test-run-aws-ECS-auth-test commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-4.4-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-4.4-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set - name: aws-4.4-auth-test-run-aws-auth-test-with-regular-aws-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with regular aws credentials - name: aws-4.4-auth-test-run-aws-auth-test-with-assume-role-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with assume role credentials - name: aws-4.4-auth-test-run-aws-auth-test-with-aws-EC2-credentials-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws EC2 credentials - name: aws-4.4-auth-test-run-aws-auth-test-with-aws-credentials-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials as environment variables - name: aws-4.4-auth-test-run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test with aws credentials and session token as environment variables - name: aws-4.4-auth-test-run-aws-ECS-auth-test-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws ECS auth test - name: aws-4.4-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-unset-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME unset - name: aws-4.4-auth-test-run-aws-auth-test-AssumeRoleWithWebIdentity-with-AWS_ROLE_SESSION_NAME-set-no-optional commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NPM_OPTIONS, value: '--no-optional'} + - {key: VERSION, value: '4.4'} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - vars: - NPM_OPTIONS: '--no-optional' - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run aws auth test AssumeRoleWithWebIdentity with AWS_ROLE_SESSION_NAME set @@ -2325,58 +2659,75 @@ tasks: tags: - run-unit-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: run unit tests - name: run-lint-checks tags: - run-lint-checks commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: run lint checks - name: check-types-typescript-next tags: - check-types-typescript-next commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '20'} + - {key: TS_VERSION, value: next} - func: install dependencies - vars: - NODE_LTS_NAME: hydrogen - func: check types - vars: - TS_VERSION: next - name: compile-driver-typescript-current tags: - compile-driver-typescript-current commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: TS_VERSION, value: current} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: compile driver - vars: - TS_VERSION: current - name: check-types-typescript-current tags: - check-types-typescript-current commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '20'} + - {key: TS_VERSION, value: current} - func: install dependencies - vars: - NODE_LTS_NAME: hydrogen - func: check types - vars: - TS_VERSION: current - name: check-types-typescript-4.1.6 tags: - check-types-typescript-4.1.6 commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '20'} + - {key: TS_VERSION, value: 4.1.6} - func: install dependencies - vars: - NODE_LTS_NAME: hydrogen - func: check types - vars: - TS_VERSION: 4.1.6 - name: download-and-merge-coverage tags: [] commands: @@ -2390,222 +2741,254 @@ tasks: tags: - run-custom-dependency-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: server - AUTH: auth - - name: run-custom-snappy-tests - func: run custom snappy tests + - func: run custom snappy tests - name: run-bson-ext-integration tags: - run-custom-dependency-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: TEST_NPM_SCRIPT, value: check:test} + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: server - AUTH: auth - - name: run-bson-ext-integration - func: run bson-ext test - vars: - NODE_LTS_NAME: erbium - TEST_NPM_SCRIPT: check:test + - func: run bson-ext test - name: run-bson-ext-unit tags: - run-custom-dependency-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: TEST_NPM_SCRIPT, value: check:unit} + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: auth} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: server - AUTH: auth - - name: run-bson-ext-unit - func: run bson-ext test - vars: - NODE_LTS_NAME: erbium - TEST_NPM_SCRIPT: check:unit + - func: run bson-ext test - name: run-custom-csfle-tests-5.0-pinned-commit tags: - run-custom-dependency-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: CSFLE_GIT_REF, value: 5e922eb1302f1efbf4e8ddeb5f2ef113fd58ced0} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: replica_set - func: bootstrap kms servers - func: run custom csfle tests - vars: - CSFLE_GIT_REF: 1524eac203e4145e9f4835e519f1e4663ff15953 - - name: run-custom-csfle-tests-5.0-master + - name: run-custom-csfle-tests-rapid-pinned-commit tags: - run-custom-dependency-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: CSFLE_GIT_REF, value: 5e922eb1302f1efbf4e8ddeb5f2ef113fd58ced0} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: replica_set - func: bootstrap kms servers - func: run custom csfle tests - vars: - CSFLE_GIT_REF: master - - name: run-custom-csfle-tests-rapid-pinned-commit + - name: run-custom-csfle-tests-latest-pinned-commit tags: - run-custom-dependency-tests commands: + - command: expansions.update + type: setup + params: + updates: + - {key: NODE_LTS_VERSION, value: '12'} + - {key: NPM_VERSION, value: '8'} + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: CSFLE_GIT_REF, value: 5e922eb1302f1efbf4e8ddeb5f2ef113fd58ced0} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: replica_set - func: bootstrap kms servers - func: run custom csfle tests - vars: - CSFLE_GIT_REF: 1524eac203e4145e9f4835e519f1e4663ff15953 - - name: run-custom-csfle-tests-rapid-master + - name: test-latest-server-noauth tags: - - run-custom-dependency-tests + - latest + - server + - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: replica_set - func: bootstrap kms servers - - func: run custom csfle tests - vars: - CSFLE_GIT_REF: master - - name: run-custom-csfle-tests-latest-pinned-commit + - func: run tests + - name: test-latest-replica_set-noauth tags: - - run-custom-dependency-tests + - latest + - replica_set + - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - func: bootstrap kms servers - - func: run custom csfle tests - vars: - CSFLE_GIT_REF: 1524eac203e4145e9f4835e519f1e4663ff15953 - - name: run-custom-csfle-tests-latest-master + - func: run tests + - name: test-latest-sharded_cluster-noauth tags: - - run-custom-dependency-tests + - latest + - sharded_cluster + - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: latest} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - vars: - NODE_LTS_NAME: erbium - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - func: bootstrap kms servers - - func: run custom csfle tests - vars: - CSFLE_GIT_REF: master - - name: test-latest-server-noauth + - func: run tests + - name: test-rapid-server-noauth tags: - - latest + - rapid - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - - name: test-latest-replica_set-noauth + - name: test-rapid-replica_set-noauth tags: - - latest + - rapid - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - - name: test-latest-sharded_cluster-noauth + - name: test-rapid-sharded_cluster-noauth tags: - - latest + - rapid - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: latest - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - - name: test-rapid-server-noauth + - name: test-7.0-server-noauth tags: - - rapid + - '7.0' - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - - name: test-rapid-replica_set-noauth + - name: test-7.0-replica_set-noauth tags: - - rapid + - '7.0' - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - - name: test-rapid-sharded_cluster-noauth + - name: test-7.0-sharded_cluster-noauth tags: - - rapid + - '7.0' - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '7.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-6.0-server-noauth @@ -2614,12 +2997,15 @@ tasks: - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-6.0-replica_set-noauth @@ -2628,12 +3014,15 @@ tasks: - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-6.0-sharded_cluster-noauth @@ -2642,12 +3031,15 @@ tasks: - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '6.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '6.0' - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-5.0-server-noauth @@ -2656,12 +3048,15 @@ tasks: - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-5.0-replica_set-noauth @@ -2670,12 +3065,15 @@ tasks: - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-5.0-sharded_cluster-noauth @@ -2684,12 +3082,15 @@ tasks: - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '5.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '5.0' - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.4-server-noauth @@ -2698,12 +3099,15 @@ tasks: - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.4-replica_set-noauth @@ -2712,12 +3116,15 @@ tasks: - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.4-sharded_cluster-noauth @@ -2726,12 +3133,15 @@ tasks: - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.4'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.4' - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.2-server-noauth @@ -2740,12 +3150,15 @@ tasks: - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.2-replica_set-noauth @@ -2754,12 +3167,15 @@ tasks: - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.2-sharded_cluster-noauth @@ -2768,12 +3184,15 @@ tasks: - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.2'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.2' - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.0-server-noauth @@ -2782,12 +3201,15 @@ tasks: - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.0'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.0' - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.0-replica_set-noauth @@ -2796,12 +3218,15 @@ tasks: - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.0'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.0' - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-4.0-sharded_cluster-noauth @@ -2810,12 +3235,15 @@ tasks: - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '4.0'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '4.0' - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-3.6-server-noauth @@ -2824,12 +3252,15 @@ tasks: - server - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '3.6'} + - {key: TOPOLOGY, value: server} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '3.6' - TOPOLOGY: server - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-3.6-replica_set-noauth @@ -2838,12 +3269,15 @@ tasks: - replica_set - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '3.6'} + - {key: TOPOLOGY, value: replica_set} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '3.6' - TOPOLOGY: replica_set - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-3.6-sharded_cluster-noauth @@ -2852,12 +3286,15 @@ tasks: - sharded_cluster - noauth commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: '3.6'} + - {key: TOPOLOGY, value: sharded_cluster} + - {key: AUTH, value: noauth} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: '3.6' - TOPOLOGY: sharded_cluster - AUTH: noauth - func: bootstrap kms servers - func: run tests - name: test-lambda-example @@ -2865,24 +3302,30 @@ tasks: - latest - lambda commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - TOPOLOGY: server - func: run lambda handler example tests - name: test-lambda-aws-auth-example tags: - latest - lambda commands: + - command: expansions.update + type: setup + params: + updates: + - {key: VERSION, value: rapid} + - {key: AUTH, value: auth} + - {key: ORCHESTRATION_FILE, value: auth-aws.json} + - {key: TOPOLOGY, value: server} - func: install dependencies - func: bootstrap mongo-orchestration - vars: - VERSION: rapid - AUTH: auth - ORCHESTRATION_FILE: auth-aws.json - TOPOLOGY: server - func: add aws auth variables to file - func: setup aws env - func: run lambda handler example tests with aws auth @@ -2893,7 +3336,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: browser-repl @@ -2904,7 +3348,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: browser-runtime-electron @@ -2915,7 +3360,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: cli-repl @@ -2926,7 +3372,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: connectivity-tests @@ -2937,7 +3384,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: mongosh @@ -2948,7 +3396,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: node-runtime-worker-thread @@ -2959,7 +3408,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh tests for package vars: mongosh_package: service-provider-server @@ -2969,7 +3419,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: compile mongosh - name: verify-mongosh-scopes tags: @@ -2977,7 +3428,8 @@ tasks: commands: - func: install dependencies vars: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 - func: run mongosh package scope test task_groups: - name: serverless_task_group @@ -3019,6 +3471,7 @@ pre: - func: fix absolute paths - func: make files executable post: + - func: reset aws instance profile - func: upload test results - func: upload coverage report - func: cleanup @@ -3034,7 +3487,8 @@ buildvariants: display_name: rhel8 Node12 run_on: rhel80-large expansions: - NODE_LTS_NAME: erbium + NODE_LTS_VERSION: 12 + NPM_VERSION: 8 CLIENT_ENCRYPTION: true tasks: - test-latest-server @@ -3043,6 +3497,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3063,7 +3520,6 @@ buildvariants: - test-3.6-sharded_cluster - test-latest-server-v1-api - test-atlas-connectivity - - test-atlas-data-lake - test-5.0-load-balanced - test-6.0-load-balanced - test-latest-load-balanced @@ -3082,7 +3538,8 @@ buildvariants: display_name: rhel8 Node14 run_on: rhel80-large expansions: - NODE_LTS_NAME: fermium + NODE_LTS_VERSION: 14 + NPM_VERSION: 9 CLIENT_ENCRYPTION: true tasks: - test-latest-server @@ -3091,6 +3548,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3111,7 +3571,6 @@ buildvariants: - test-3.6-sharded_cluster - test-latest-server-v1-api - test-atlas-connectivity - - test-atlas-data-lake - test-5.0-load-balanced - test-6.0-load-balanced - test-latest-load-balanced @@ -3130,7 +3589,8 @@ buildvariants: display_name: rhel8 Node16 run_on: rhel80-large expansions: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 CLIENT_ENCRYPTION: true tasks: - test-latest-server @@ -3139,6 +3599,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3159,7 +3622,6 @@ buildvariants: - test-3.6-sharded_cluster - test-latest-server-v1-api - test-atlas-connectivity - - test-atlas-data-lake - test-5.0-load-balanced - test-6.0-load-balanced - test-latest-load-balanced @@ -3176,7 +3638,8 @@ buildvariants: display_name: rhel8 Node18 run_on: rhel80-large expansions: - NODE_LTS_NAME: hydrogen + NODE_LTS_VERSION: 18 + NPM_VERSION: latest CLIENT_ENCRYPTION: true tasks: - test-latest-server @@ -3185,6 +3648,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3205,7 +3671,6 @@ buildvariants: - test-3.6-sharded_cluster - test-latest-server-v1-api - test-atlas-connectivity - - test-atlas-data-lake - test-5.0-load-balanced - test-6.0-load-balanced - test-latest-load-balanced @@ -3217,11 +3682,61 @@ buildvariants: - test-tls-support-5.0 - test-tls-support-4.4 - test-tls-support-4.2 + - name: rhel80-large-Node20 + display_name: rhel8 Node20 + run_on: rhel80-large + expansions: + NODE_LTS_VERSION: 20 + NPM_VERSION: latest + CLIENT_ENCRYPTION: true + tasks: + - test-latest-server + - test-latest-replica_set + - test-latest-sharded_cluster + - test-rapid-server + - test-rapid-replica_set + - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster + - test-6.0-server + - test-6.0-replica_set + - test-6.0-sharded_cluster + - test-5.0-server + - test-5.0-replica_set + - test-5.0-sharded_cluster + - test-4.4-server + - test-4.4-replica_set + - test-4.4-sharded_cluster + - test-4.2-server + - test-4.2-replica_set + - test-4.2-sharded_cluster + - test-4.0-server + - test-4.0-replica_set + - test-4.0-sharded_cluster + - test-3.6-server + - test-3.6-replica_set + - test-3.6-sharded_cluster + - test-latest-server-v1-api + - test-atlas-connectivity + - test-5.0-load-balanced + - test-6.0-load-balanced + - test-latest-load-balanced + - test-auth-ldap + - test-socks5 + - test-socks5-tls + - test-zstd-compression + - test-snappy-compression + - test-tls-support-latest + - test-tls-support-6.0 + - test-tls-support-5.0 + - test-tls-support-4.4 + - test-tls-support-4.2 - name: rhel80-large-node-latest display_name: rhel8 Node Latest run_on: rhel80-large expansions: - NODE_LTS_NAME: latest + NODE_LTS_VERSION: latest CLIENT_ENCRYPTION: true tasks: - test-latest-server @@ -3230,6 +3745,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3250,7 +3768,6 @@ buildvariants: - test-3.6-sharded_cluster - test-latest-server-v1-api - test-atlas-connectivity - - test-atlas-data-lake - test-5.0-load-balanced - test-6.0-load-balanced - test-latest-load-balanced @@ -3261,11 +3778,12 @@ buildvariants: - test-tls-support-5.0 - test-tls-support-4.4 - test-tls-support-4.2 - - name: windows-64-vs2019-erbium - display_name: Windows (VS2019) Node12 - run_on: windows-64-vs2019-large + - name: windows-vsCurrent-large-fermium + display_name: Windows Node14 + run_on: windows-vsCurrent-large expansions: - NODE_LTS_NAME: erbium + NODE_LTS_VERSION: 14 + NPM_VERSION: 9 tasks: - test-latest-server - test-latest-replica_set @@ -3273,6 +3791,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3292,7 +3813,6 @@ buildvariants: - test-3.6-replica_set - test-3.6-sharded_cluster - test-latest-server-v1-api - - test-atlas-data-lake - test-socks5 - test-socks5-tls - test-zstd-compression @@ -3302,11 +3822,12 @@ buildvariants: - test-tls-support-5.0 - test-tls-support-4.4 - test-tls-support-4.2 - - name: windows-64-vs2019-fermium - display_name: Windows (VS2019) Node14 - run_on: windows-64-vs2019-large + - name: windows-vsCurrent-large-gallium + display_name: Windows Node16 + run_on: windows-vsCurrent-large expansions: - NODE_LTS_NAME: fermium + NODE_LTS_VERSION: 16 + NPM_VERSION: 9 tasks: - test-latest-server - test-latest-replica_set @@ -3314,6 +3835,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3333,21 +3857,19 @@ buildvariants: - test-3.6-replica_set - test-3.6-sharded_cluster - test-latest-server-v1-api - - test-atlas-data-lake - test-socks5 - test-socks5-tls - - test-zstd-compression - - test-snappy-compression - test-tls-support-latest - test-tls-support-6.0 - test-tls-support-5.0 - test-tls-support-4.4 - test-tls-support-4.2 - - name: windows-64-vs2019-gallium - display_name: Windows (VS2019) Node16 - run_on: windows-64-vs2019-large + - name: windows-vsCurrent-large-hydrogen + display_name: Windows Node18 + run_on: windows-vsCurrent-large expansions: - NODE_LTS_NAME: gallium + NODE_LTS_VERSION: 18 + NPM_VERSION: latest tasks: - test-latest-server - test-latest-replica_set @@ -3355,6 +3877,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3374,7 +3899,6 @@ buildvariants: - test-3.6-replica_set - test-3.6-sharded_cluster - test-latest-server-v1-api - - test-atlas-data-lake - test-socks5 - test-socks5-tls - test-tls-support-latest @@ -3382,11 +3906,12 @@ buildvariants: - test-tls-support-5.0 - test-tls-support-4.4 - test-tls-support-4.2 - - name: windows-64-vs2019-hydrogen - display_name: Windows (VS2019) Node18 - run_on: windows-64-vs2019-large + - name: windows-vsCurrent-large-Node20 + display_name: Windows Node20 + run_on: windows-vsCurrent-large expansions: - NODE_LTS_NAME: hydrogen + NODE_LTS_VERSION: 20 + NPM_VERSION: latest tasks: - test-latest-server - test-latest-replica_set @@ -3394,6 +3919,9 @@ buildvariants: - test-rapid-server - test-rapid-replica_set - test-rapid-sharded_cluster + - test-7.0-server + - test-7.0-replica_set + - test-7.0-sharded_cluster - test-6.0-server - test-6.0-replica_set - test-6.0-sharded_cluster @@ -3413,19 +3941,20 @@ buildvariants: - test-3.6-replica_set - test-3.6-sharded_cluster - test-latest-server-v1-api - - test-atlas-data-lake - test-socks5 - test-socks5-tls + - test-zstd-compression + - test-snappy-compression - test-tls-support-latest - test-tls-support-6.0 - test-tls-support-5.0 - test-tls-support-4.4 - test-tls-support-4.2 - name: macos-1100 - display_name: MacOS 11 Node18 + display_name: MacOS 11 Node20 run_on: macos-1100 expansions: - NODE_LTS_NAME: hydrogen + NODE_LTS_VERSION: 20 CLIENT_ENCRYPTION: true tasks: - test-rapid-server @@ -3461,7 +3990,8 @@ buildvariants: display_name: MONGODB-AWS Auth test run_on: ubuntu1804-large expansions: - NODE_LTS_NAME: erbium + NODE_LTS_VERSION: 12 + NPM_VERSION: 8 tasks: - aws-latest-auth-test-run-aws-auth-test-with-regular-aws-credentials - aws-latest-auth-test-run-aws-auth-test-with-assume-role-credentials @@ -3536,16 +4066,21 @@ buildvariants: - run-bson-ext-integration - run-bson-ext-unit - run-custom-csfle-tests-5.0-pinned-commit - - run-custom-csfle-tests-5.0-master - run-custom-csfle-tests-rapid-pinned-commit - - run-custom-csfle-tests-rapid-master - run-custom-csfle-tests-latest-pinned-commit - - run-custom-csfle-tests-latest-master + - name: ubuntu2204-test-atlas-data-lake + display_name: Atlas Data Lake Tests + run_on: ubuntu2204-large + expansions: + NODE_LTS_VERSION: 20 + tasks: + - test-atlas-data-lake - name: rhel8-test-serverless display_name: Serverless Test run_on: rhel80-large expansions: - NODE_LTS_NAME: erbium + NODE_LTS_VERSION: 12 + NPM_VERSION: 8 tasks: - serverless_task_group - name: rhel8-no-auth-tests @@ -3560,6 +4095,9 @@ buildvariants: - test-rapid-server-noauth - test-rapid-replica_set-noauth - test-rapid-sharded_cluster-noauth + - test-7.0-server-noauth + - test-7.0-replica_set-noauth + - test-7.0-sharded_cluster-noauth - test-6.0-server-noauth - test-6.0-replica_set-noauth - test-6.0-sharded_cluster-noauth diff --git a/.evergreen/generate_evergreen_tasks.js b/.evergreen/generate_evergreen_tasks.js index 598acf87e63..440c298037a 100644 --- a/.evergreen/generate_evergreen_tasks.js +++ b/.evergreen/generate_evergreen_tasks.js @@ -11,19 +11,24 @@ const { TOPOLOGIES, AWS_AUTH_VERSIONS, TLS_VERSIONS, - DEFAULT_OS + DEFAULT_OS, + WINDOWS_OS, + MACOS_OS, + UBUNTU_OS, + UBUNTU_22_OS, + DEBIAN_OS } = require('./ci_matrix_constants'); const OPERATING_SYSTEMS = [ { - name: 'rhel80-large', + name: DEFAULT_OS, display_name: 'rhel8', run_on: DEFAULT_OS }, { - name: 'windows-64-vs2019', - display_name: 'Windows (VS2019)', - run_on: 'windows-64-vs2019-large', + name: WINDOWS_OS, + display_name: 'Windows', + run_on: WINDOWS_OS, clientEncryption: false // TODO(NODE-3401): Unskip when Windows no longer fails to launch mongocryptd occasionally } ].map(osConfig => ({ @@ -35,23 +40,39 @@ const OPERATING_SYSTEMS = [ // TODO: NODE-3060: enable skipped tests on windows const WINDOWS_SKIP_TAGS = new Set(['atlas-connect', 'auth', 'load_balancer']); +const SKIPPED_WINDOWS_NODE_VERSIONS = new Set([12]); const TASKS = []; const SINGLETON_TASKS = []; +/** + * @param {Record} expansions - keys become expansion names and values are stringified and become expansion value. + * @returns {{command: 'expansions.update'; type: 'setup'; params: { updates: Array<{key: string, value: string}> } }} + */ +function updateExpansions(expansions) { + const updates = Object.entries(expansions).map(([key, value]) => ({ key, value: `${value}` })); + return { + command: 'expansions.update', + type: 'setup', + params: { updates } + }; +} + + function makeTask({ mongoVersion, topology, tags = [], auth = 'auth' }) { return { name: `test-${mongoVersion}-${topology}${auth === 'noauth' ? '-noauth' : ''}`, tags: [mongoVersion, topology, ...tags], commands: [ + updateExpansions({ + VERSION: mongoVersion, + TOPOLOGY: topology, + AUTH: auth + }), { func: 'install dependencies' }, { func: 'bootstrap mongo-orchestration', - vars: { - VERSION: mongoVersion, - TOPOLOGY: topology, - AUTH: auth - } + }, { func: 'bootstrap kms servers' }, { func: 'run tests' } @@ -80,23 +101,17 @@ BASE_TASKS.push({ name: `test-latest-server-v1-api`, tags: ['latest', 'server', 'v1-api'], commands: [ + updateExpansions({ + VERSION: 'latest', + TOPOLOGY: 'server', + REQUIRE_API_VERSION: '1', + AUTH: 'auth', + MONGODB_API_VERSION: '1' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: 'latest', - TOPOLOGY: 'server', - REQUIRE_API_VERSION: '1', - AUTH: 'auth' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'bootstrap kms servers' }, - { - func: 'run tests', - vars: { - MONGODB_API_VERSION: '1' - } - } + { func: 'run tests' } ] }); @@ -108,28 +123,18 @@ TASKS.push( tags: ['atlas-connect'], commands: [{ func: 'install dependencies' }, { func: 'run atlas tests' }] }, - { - name: 'test-atlas-data-lake', - commands: [ - { func: 'install dependencies' }, - { func: 'bootstrap mongohoused' }, - { func: 'run data lake tests' } - ] - }, { name: 'test-5.0-load-balanced', tags: ['latest', 'sharded_cluster', 'load_balancer'], commands: [ + updateExpansions({ + VERSION: '5.0', + TOPOLOGY: 'sharded_cluster', + AUTH: 'auth', + LOAD_BALANCER: 'true' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: '5.0', - TOPOLOGY: 'sharded_cluster', - AUTH: 'auth', - LOAD_BALANCER: 'true' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'start-load-balancer' }, { func: 'run-lb-tests' }, { func: 'stop-load-balancer' } @@ -139,16 +144,14 @@ TASKS.push( name: 'test-6.0-load-balanced', tags: ['latest', 'sharded_cluster', 'load_balancer'], commands: [ + updateExpansions({ + VERSION: '6.0', + TOPOLOGY: 'sharded_cluster', + AUTH: 'auth', + LOAD_BALANCER: 'true' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: '6.0', - TOPOLOGY: 'sharded_cluster', - AUTH: 'auth', - LOAD_BALANCER: 'true' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'start-load-balancer' }, { func: 'run-lb-tests' }, { func: 'stop-load-balancer' } @@ -158,16 +161,14 @@ TASKS.push( name: 'test-latest-load-balanced', tags: ['latest', 'sharded_cluster', 'load_balancer'], commands: [ + updateExpansions({ + VERSION: 'latest', + TOPOLOGY: 'sharded_cluster', + AUTH: 'auth', + LOAD_BALANCER: 'true' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: 'latest', - TOPOLOGY: 'sharded_cluster', - AUTH: 'auth', - LOAD_BALANCER: 'true' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'start-load-balancer' }, { func: 'run-lb-tests' }, { func: 'stop-load-balancer' } @@ -187,14 +188,12 @@ TASKS.push( name: 'test-socks5', tags: [], commands: [ + updateExpansions({ + VERSION: 'latest', + TOPOLOGY: 'replica_set' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: 'latest', - TOPOLOGY: 'replica_set' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'bootstrap kms servers' }, { func: 'run socks5 tests' } ] @@ -203,16 +202,14 @@ TASKS.push( name: 'test-socks5-tls', tags: [], commands: [ + updateExpansions({ + SSL: 'ssl', + VERSION: 'latest', + TOPOLOGY: 'replica_set' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - SSL: 'ssl', - VERSION: 'latest', - TOPOLOGY: 'replica_set' - } - }, - { func: 'run socks5 tests', vars: { SSL: 'ssl' } } + { func: 'bootstrap mongo-orchestration' }, + { func: 'run socks5 tests' } ] } ] @@ -223,16 +220,14 @@ for (const compressor of ['zstd', 'snappy']) { name: `test-${compressor}-compression`, tags: ['latest', compressor], commands: [ + updateExpansions({ + VERSION: 'latest', + TOPOLOGY: 'replica_set', + AUTH: 'auth', + COMPRESSOR: compressor + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: 'latest', - TOPOLOGY: 'replica_set', - AUTH: 'auth', - COMPRESSOR: compressor - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'run-compression-tests' } ] }); @@ -244,14 +239,12 @@ AWS_LAMBDA_HANDLER_TASKS.push({ name: 'test-lambda-example', tags: ['latest', 'lambda'], commands: [ + updateExpansions({ + VERSION: 'rapid', + TOPOLOGY: 'server' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: 'rapid', - TOPOLOGY: 'server' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'run lambda handler example tests' } ] }); @@ -261,16 +254,14 @@ AWS_LAMBDA_HANDLER_TASKS.push({ name: 'test-lambda-aws-auth-example', tags: ['latest', 'lambda'], commands: [ + updateExpansions({ + VERSION: 'rapid', + AUTH: 'auth', + ORCHESTRATION_FILE: 'auth-aws.json', + TOPOLOGY: 'server' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: 'rapid', - AUTH: 'auth', - ORCHESTRATION_FILE: 'auth-aws.json', - TOPOLOGY: 'server' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'add aws auth variables to file' }, { func: 'setup aws env' }, { func: 'run lambda handler example tests with aws auth' } @@ -282,17 +273,15 @@ for (const VERSION of TLS_VERSIONS) { name: `test-tls-support-${VERSION}`, tags: ['tls-support'], commands: [ + updateExpansions({ + VERSION, + SSL: 'ssl', + TOPOLOGY: 'server' + // TODO: NODE-3891 - fix tests broken when AUTH enabled + // AUTH: 'auth' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION, - SSL: 'ssl', - TOPOLOGY: 'server' - // TODO: NODE-3891 - fix tests broken when AUTH enabled - // AUTH: 'auth' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'run tls tests' } ] }); @@ -316,16 +305,14 @@ for (const VERSION of AWS_AUTH_VERSIONS) { const awsTasks = awsFuncs.map(fn => ({ name: name(fn.func), commands: [ + updateExpansions({ + VERSION: VERSION, + AUTH: 'auth', + ORCHESTRATION_FILE: 'auth-aws.json', + TOPOLOGY: 'server' + }), { func: 'install dependencies' }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: VERSION, - AUTH: 'auth', - ORCHESTRATION_FILE: 'auth-aws.json', - TOPOLOGY: 'server' - } - }, + { func: 'bootstrap mongo-orchestration' }, { func: 'add aws auth variables to file' }, { func: 'setup aws env' }, { ...fn } @@ -335,21 +322,15 @@ for (const VERSION of AWS_AUTH_VERSIONS) { const awsNoOptionalTasks = awsFuncs.map(fn => ({ name: `${name(fn.func)}-no-optional`, commands: [ - { - func: 'install dependencies', - vars: { - NPM_OPTIONS: '--no-optional' - } - }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: VERSION, - AUTH: 'auth', - ORCHESTRATION_FILE: 'auth-aws.json', - TOPOLOGY: 'server' - } - }, + updateExpansions({ + NPM_OPTIONS: '--no-optional', + VERSION: VERSION, + AUTH: 'auth', + ORCHESTRATION_FILE: 'auth-aws.json', + TOPOLOGY: 'server' + }), + { func: 'install dependencies' }, + { func: 'bootstrap mongo-orchestration' }, { func: 'add aws auth variables to file' }, { func: 'setup aws env' }, { ...fn } @@ -383,21 +364,31 @@ for (const { return !isAWSTask && !isSkippedTaskOnWindows; }); - for (const NODE_LTS_NAME of testedNodeVersions) { - const nodeVersionNumber = versions.find( - ({ codeName }) => codeName === NODE_LTS_NAME - ).versionNumber; - const nodeLtsDisplayName = - nodeVersionNumber === undefined ? `Node Latest` : `Node${nodeVersionNumber}`; - const name = `${osName}-${NODE_LTS_NAME}`; + function npmVersion(nodeVersion) { + switch (nodeVersion) { + case 16: + case 14: return 9; + case 12: return 8; + default: return 'latest'; + } + } + + for (const NODE_LTS_VERSION of testedNodeVersions) { + const nodeLTSCodeName = versions.find(({ versionNumber }) => versionNumber === NODE_LTS_VERSION).codeName; + const nodeLtsDisplayName = `Node${NODE_LTS_VERSION}`; + const name = `${osName}-${NODE_LTS_VERSION >= 20 ? nodeLtsDisplayName : nodeLTSCodeName}`; const display_name = `${osDisplayName} ${nodeLtsDisplayName}`; - const expansions = { NODE_LTS_NAME }; + const expansions = { NODE_LTS_VERSION, NPM_VERSION: npmVersion(NODE_LTS_VERSION) }; const taskNames = tasks.map(({ name }) => name); if (clientEncryption) { expansions.CLIENT_ENCRYPTION = true; } + if (os.match(/^windows/) && SKIPPED_WINDOWS_NODE_VERSIONS.has(NODE_LTS_VERSION)) { + continue; + } + BUILD_VARIANTS.push({ name, display_name, run_on, expansions, tasks: taskNames }); } @@ -407,7 +398,7 @@ for (const { name: `${osName}-node-latest`, display_name: `${osDisplayName} Node Latest`, run_on, - expansions: { NODE_LTS_NAME: 'latest' }, + expansions: { NODE_LTS_VERSION: 'latest' }, tasks: tasks.map(({ name }) => name) }; if (clientEncryption) { @@ -419,13 +410,12 @@ for (const { } BUILD_VARIANTS.push({ - name: 'macos-1100', - display_name: `MacOS 11 Node${ - versions.find(version => version.codeName === LATEST_LTS).versionNumber - }`, - run_on: 'macos-1100', + name: MACOS_OS, + display_name: `MacOS 11 Node${versions.find(version => version.versionNumber === LATEST_LTS).versionNumber + }`, + run_on: MACOS_OS, expansions: { - NODE_LTS_NAME: LATEST_LTS, + NODE_LTS_VERSION: LATEST_LTS, CLIENT_ENCRYPTION: true }, tasks: ['test-rapid-server'] @@ -438,12 +428,11 @@ SINGLETON_TASKS.push( name: 'run-unit-tests', tags: ['run-unit-tests'], commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LOWEST_LTS - } - }, + updateExpansions({ + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8 + }), + { func: 'install dependencies' }, { func: 'run unit tests' } ] }, @@ -451,12 +440,11 @@ SINGLETON_TASKS.push( name: 'run-lint-checks', tags: ['run-lint-checks'], commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LOWEST_LTS - } - }, + updateExpansions({ + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8 + }), + { func: 'install dependencies' }, { func: 'run lint checks' } ] }, @@ -472,18 +460,13 @@ function* makeTypescriptTasks() { name: `compile-driver-typescript-${TS_VERSION}`, tags: [`compile-driver-typescript-${TS_VERSION}`], commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LOWEST_LTS - } - }, - { - func: 'compile driver', - vars: { - TS_VERSION - } - } + updateExpansions({ + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8, + TS_VERSION + }), + { func: 'install dependencies' }, + { func: 'compile driver' } ] }; } @@ -492,18 +475,12 @@ function* makeTypescriptTasks() { name: `check-types-typescript-${TS_VERSION}`, tags: [`check-types-typescript-${TS_VERSION}`], commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LATEST_LTS - } - }, - { - func: 'check types', - vars: { - TS_VERSION - } - } + updateExpansions({ + NODE_LTS_VERSION: LATEST_LTS, + TS_VERSION + }), + { func: 'install dependencies' }, + { func: 'check types' } ] }; } @@ -511,12 +488,10 @@ function* makeTypescriptTasks() { name: 'run-typescript-next', tags: ['run-typescript-next'], commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LATEST_LTS - } - }, + updateExpansions({ + NODE_LTS_VERSION: LATEST_LTS + }), + { func: 'install dependencies' }, { func: 'run typescript next' } ] }; @@ -543,7 +518,7 @@ BUILD_VARIANTS.push({ BUILD_VARIANTS.push({ name: 'mongosh_integration_tests', display_name: 'mongosh integration tests', - run_on: 'ubuntu1804-large', + run_on: UBUNTU_OS, tasks: mongoshTasks.map(({ name }) => name) }); @@ -551,9 +526,10 @@ BUILD_VARIANTS.push({ BUILD_VARIANTS.push({ name: 'ubuntu1804-test-mongodb-aws', display_name: 'MONGODB-AWS Auth test', - run_on: 'ubuntu1804-large', + run_on: UBUNTU_OS, expansions: { - NODE_LTS_NAME: LOWEST_LTS + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8 }, tasks: AWS_AUTH_TASKS }); @@ -566,74 +542,56 @@ const oneOffFuncs = [ { name: 'run-bson-ext-integration', func: 'run bson-ext test', - vars: { - NODE_LTS_NAME: LOWEST_LTS, + expansions: { TEST_NPM_SCRIPT: 'check:test' } }, { name: 'run-bson-ext-unit', func: 'run bson-ext test', - vars: { - NODE_LTS_NAME: LOWEST_LTS, + expansions: { TEST_NPM_SCRIPT: 'check:unit' } } ]; -const oneOffFuncAsTasks = oneOffFuncs.map(oneOffFunc => ({ - name: oneOffFunc.name, +const oneOffFuncAsTasks = oneOffFuncs.map(({ name, expansions, func }) => ({ + name, tags: ['run-custom-dependency-tests'], commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LOWEST_LTS - } - }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: '5.0', - TOPOLOGY: 'server', - AUTH: 'auth' - } - }, - oneOffFunc + updateExpansions({ + ...expansions, + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8, + VERSION: '5.0', + TOPOLOGY: 'server', + AUTH: 'auth' + }), + { func: 'install dependencies' }, + { func: 'bootstrap mongo-orchestration' }, + { func } ] })); -const FLE_PINNED_COMMIT = '1524eac203e4145e9f4835e519f1e4663ff15953' - for (const version of ['5.0', 'rapid', 'latest']) { - for (const ref of [FLE_PINNED_COMMIT, 'master']) { - oneOffFuncAsTasks.push({ - name: `run-custom-csfle-tests-${version}-${ref === 'master' ? ref : 'pinned-commit'}`, - tags: ['run-custom-dependency-tests'], - commands: [ - { - func: 'install dependencies', - vars: { - NODE_LTS_NAME: LOWEST_LTS - } - }, - { - func: 'bootstrap mongo-orchestration', - vars: { - VERSION: version, - TOPOLOGY: 'replica_set' - } - }, - { func: 'bootstrap kms servers' }, - { - func: 'run custom csfle tests', - vars: { - CSFLE_GIT_REF: ref - } - } - ] - }); - } + oneOffFuncAsTasks.push({ + name: `run-custom-csfle-tests-${version}-pinned-commit`, + tags: ['run-custom-dependency-tests'], + commands: [ + updateExpansions({ + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8, + VERSION: version, + TOPOLOGY: 'replica_set', + CSFLE_GIT_REF: '5e922eb1302f1efbf4e8ddeb5f2ef113fd58ced0' + + }), + { func: 'install dependencies' }, + { func: 'bootstrap mongo-orchestration' }, + { func: 'bootstrap kms servers' }, + { func: 'run custom csfle tests' } + ] + }); } const coverageTask = { @@ -657,13 +615,24 @@ BUILD_VARIANTS.push({ tasks: oneOffFuncAsTasks.map(({ name }) => name) }); +BUILD_VARIANTS.push({ + name: 'ubuntu2204-test-atlas-data-lake', + display_name: 'Atlas Data Lake Tests', + run_on: UBUNTU_22_OS, + expansions: { + NODE_LTS_VERSION: LATEST_LTS + }, + tasks: ['test-atlas-data-lake'] +}); + // special case for serverless testing BUILD_VARIANTS.push({ name: 'rhel8-test-serverless', display_name: 'Serverless Test', run_on: DEFAULT_OS, expansions: { - NODE_LTS_NAME: LOWEST_LTS + NODE_LTS_VERSION: LOWEST_LTS, + NPM_VERSION: 8 }, tasks: ['serverless_task_group'] }); @@ -689,7 +658,7 @@ BUILD_VARIANTS.push({ for (const variant of BUILD_VARIANTS.filter( variant => variant.expansions && - ['gallium', 'hydrogen', 'latest'].includes(variant.expansions.NODE_LTS_NAME) + [16, 18, 'latest'].includes(variant.expansions.NODE_LTS_VERSION) )) { variant.tasks = variant.tasks.filter( name => !['test-zstd-compression', 'test-snappy-compression'].includes(name) @@ -698,14 +667,14 @@ for (const variant of BUILD_VARIANTS.filter( // TODO(NODE-4894): fix kerberos tests on Node18 for (const variant of BUILD_VARIANTS.filter( - variant => variant.expansions && ['hydrogen', 'latest'].includes(variant.expansions.NODE_LTS_NAME) + variant => variant.expansions && [18, 20, 'latest'].includes(variant.expansions.NODE_LTS_VERSION) )) { variant.tasks = variant.tasks.filter(name => !['test-auth-kerberos'].includes(name)); } // TODO(NODE-4897): Debug socks5 tests on node latest for (const variant of BUILD_VARIANTS.filter( - variant => variant.expansions && ['latest'].includes(variant.expansions.NODE_LTS_NAME) + variant => variant.expansions && ['latest'].includes(variant.expansions.NODE_LTS_VERSION) )) { variant.tasks = variant.tasks.filter(name => !['test-socks5'].includes(name)); } @@ -723,6 +692,6 @@ fileData.buildvariants = (fileData.buildvariants || []).concat(BUILD_VARIANTS); fs.writeFileSync( `${__dirname}/config.yml`, - yaml.dump(fileData, { lineWidth: 120, noRefs: true }), + yaml.dump(fileData, { lineWidth: 120, noRefs: true, flowLevel: 7, condenseFlow: false }), 'utf8' ); diff --git a/.evergreen/generate_mongosh_tasks.js b/.evergreen/generate_mongosh_tasks.js index 6d129058269..2db138ef2fb 100644 --- a/.evergreen/generate_mongosh_tasks.js +++ b/.evergreen/generate_mongosh_tasks.js @@ -17,7 +17,8 @@ const mongoshTestTasks = scopes.map(packageName => { { func: 'install dependencies', vars: { - NODE_LTS_NAME: 'gallium' + NODE_LTS_VERSION: 16, + NPM_VERSION: 9 } }, { @@ -37,7 +38,8 @@ const compileTask = { { func: 'install dependencies', vars: { - NODE_LTS_NAME: 'gallium' + NODE_LTS_VERSION: 16, + NPM_VERSION: 9 } }, { func: 'compile mongosh' } @@ -51,7 +53,8 @@ const scopeVerificationTask = { { func: 'install dependencies', vars: { - NODE_LTS_NAME: 'gallium' + NODE_LTS_VERSION: 16, + NPM_VERSION: 9 } }, { func: 'run mongosh package scope test' } diff --git a/.evergreen/init-node-and-npm-env.sh b/.evergreen/init-node-and-npm-env.sh new file mode 100644 index 00000000000..b3cecf54e33 --- /dev/null +++ b/.evergreen/init-node-and-npm-env.sh @@ -0,0 +1,21 @@ +#! /usr/bin/env bash +## +## This script add the location of `npm` and `node` to the path. +## This is necessary because evergreen uses separate bash scripts for +## different functions in a given CI run but doesn't persist the environment +## across them. So we manually invoke this script everywhere we need +## access to `npm`, `node`, or need to install something globally from +## npm. + +NODE_ARTIFACTS_PATH="${PROJECT_DIRECTORY}/node-artifacts" +if [[ "$OS" == "Windows_NT" ]]; then + NODE_ARTIFACTS_PATH=$(cygpath --unix "$NODE_ARTIFACTS_PATH") +fi + +export NODE_ARTIFACTS_PATH +# npm uses this environment variable to determine where to install global packages +export npm_global_prefix=$NODE_ARTIFACTS_PATH/npm_global +export PATH="$npm_global_prefix/bin:$NODE_ARTIFACTS_PATH/nodejs/bin:$PATH" +hash -r + +export NODE_OPTIONS="--trace-deprecation --trace-warnings" diff --git a/.evergreen/init-nvm.sh b/.evergreen/init-nvm.sh deleted file mode 100644 index 28d14f16d83..00000000000 --- a/.evergreen/init-nvm.sh +++ /dev/null @@ -1,13 +0,0 @@ -#! /usr/bin/env bash - -export PATH="/opt/mongodbtoolchain/v2/bin:$PATH" - -NODE_ARTIFACTS_PATH="${PROJECT_DIRECTORY}/node-artifacts" -if [[ "$OS" == "Windows_NT" ]]; then - NODE_ARTIFACTS_PATH=$(cygpath --unix "$NODE_ARTIFACTS_PATH") -fi - -export PATH="$NODE_ARTIFACTS_PATH/npm_global/bin:$NODE_ARTIFACTS_PATH/nodejs/bin:$PATH" -hash -r - -export NODE_OPTIONS="--trace-deprecation --trace-warnings" diff --git a/.evergreen/install-dependencies.sh b/.evergreen/install-dependencies.sh index 3a6cd7e96aa..dcebeb0009e 100644 --- a/.evergreen/install-dependencies.sh +++ b/.evergreen/install-dependencies.sh @@ -1,9 +1,16 @@ #!/usr/bin/env bash set -o errexit # Exit the script with error if any of the commands fail -NODE_LTS_NAME=${NODE_LTS_NAME:-erbium} -NODE_ARTIFACTS_PATH="${PROJECT_DIRECTORY:-$(pwd)}/node-artifacts" -if [[ "$OS" = "Windows_NT" ]]; then NODE_ARTIFACTS_PATH=$(cygpath --unix "$NODE_ARTIFACTS_PATH"); fi +NODE_LTS_VERSION=${NODE_LTS_VERSION:-12} +# npm version can be defined in the environment for cases where we need to install +# a later version. We default to 8 when not defined since the default node version +# is 12. +NPM_VERSION=${NPM_VERSION:-8} + +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" + +if [[ -z "${npm_global_prefix}" ]]; then echo "npm_global_prefix is unset" && exit 1; fi +if [[ -z "${NODE_ARTIFACTS_PATH}" ]]; then echo "NODE_ARTIFACTS_PATH is unset" && exit 1; fi CURL_FLAGS=( --fail # Exit code 1 if request fails @@ -28,11 +35,12 @@ curl "${CURL_FLAGS[@]}" "https://nodejs.org/dist/index.tab" --output node_index. while IFS=$'\t' read -r -a row; do node_index_version="${row[0]}" + node_index_major_version=$(echo $node_index_version | sed -E 's/^v([0-9]+).*$/\1/') node_index_date="${row[1]}" node_index_lts="${row[9]}" [[ "$node_index_version" = "version" ]] && continue # skip tsv header - [[ "$NODE_LTS_NAME" = "latest" ]] && break # first line is latest - [[ "$NODE_LTS_NAME" = "$node_index_lts" ]] && break # case insensitive compare + [[ "$NODE_LTS_VERSION" = "latest" ]] && break # first line is latest + [[ "$NODE_LTS_VERSION" = "$node_index_major_version" ]] && break # case insensitive compare done < node_index.tab if [[ "$OS" = "Windows_NT" ]]; then @@ -89,26 +97,12 @@ else mv "${NODE_ARTIFACTS_PATH}/${node_directory}" "${NODE_ARTIFACTS_PATH}/nodejs" fi -export PATH="$NODE_ARTIFACTS_PATH/npm_global/bin:$NODE_ARTIFACTS_PATH/nodejs/bin:$PATH" -hash -r - -# Set npm -g prefix to our local artifacts directory -cat < .npmrc -prefix=$NODE_ARTIFACTS_PATH/npm_global -EOT - -# Cannot upgrade npm version for node 12 -if [[ $operating_system != "win" ]] && [[ $NODE_LTS_NAME != "erbium" ]]; then - # Update npm to latest when we can - npm install --global npm@latest - hash -r -elif [[ $NODE_LTS_NAME == "erbium" ]]; then - # Node.js 12 can run up to npm v8 - npm install --global npm@8 +if [[ $operating_system != "win" ]]; then + npm install --global npm@$NPM_VERSION hash -r fi +echo "npm location: $(which npm)" echo "npm version: $(npm -v)" -# TODO(NODE-5180): remove --force option -npm install --force "${NPM_OPTIONS}" +npm install "${NPM_OPTIONS}" diff --git a/.evergreen/run-atlas-tests.sh b/.evergreen/run-atlas-tests.sh index aa675faa413..c65b8512a77 100644 --- a/.evergreen/run-atlas-tests.sh +++ b/.evergreen/run-atlas-tests.sh @@ -2,7 +2,7 @@ set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -o xtrace diff --git a/.evergreen/run-benchmarks.sh b/.evergreen/run-benchmarks.sh index d8347077a86..8e1bf318996 100644 --- a/.evergreen/run-benchmarks.sh +++ b/.evergreen/run-benchmarks.sh @@ -1,6 +1,6 @@ #! /bin/bash -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" export MONGODB_URI=$MONGODB_URI diff --git a/.evergreen/run-bson-ext-test.sh b/.evergreen/run-bson-ext-test.sh index 7b491847836..39149b7b1db 100755 --- a/.evergreen/run-bson-ext-test.sh +++ b/.evergreen/run-bson-ext-test.sh @@ -1,6 +1,6 @@ #!/bin/bash -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -o xtrace # Write all commands first to stderr set -o errexit # Exit the script with error if any of the commands fail @@ -23,7 +23,7 @@ fi # run tests echo "Running $AUTH tests over $SSL, connecting to $MONGODB_URI" -npm install mongodb-client-encryption@">=2.3.0" +npm install "mongodb-client-encryption@2.x" npm install bson-ext export MONGODB_API_VERSION=${MONGODB_API_VERSION} diff --git a/.evergreen/run-custom-csfle-tests.sh b/.evergreen/run-custom-csfle-tests.sh index 7cd7f0210a2..018fe5974ad 100644 --- a/.evergreen/run-custom-csfle-tests.sh +++ b/.evergreen/run-custom-csfle-tests.sh @@ -12,7 +12,7 @@ export CSFLE_KMS_PROVIDERS=${CSFLE_KMS_PROVIDERS} export CRYPT_SHARED_LIB_PATH=${CRYPT_SHARED_LIB_PATH} echo "csfle CRYPT_SHARED_LIB_PATH: $CRYPT_SHARED_LIB_PATH" -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -o xtrace # Write all commands first to stderr set -o errexit # Exit the script with error if any of the commands fail @@ -52,8 +52,7 @@ popd # mongo-c-driver pushd libmongocrypt/bindings/node -# TODO(NODE-5180): remove --force option -npm install --force --production --ignore-scripts +npm install --production --ignore-scripts bash ./etc/build-static.sh popd # libmongocrypt/bindings/node @@ -82,8 +81,7 @@ pushd ../csfle-deps-tmp/libmongocrypt/bindings/node killall mongocryptd || true # only prod deps were installed earlier, install devDependencies here (except for mongodb!) -# TODO(NODE-5180): remove --force option -npm install --force --ignore-scripts +npm install --ignore-scripts # copy mongodb into CSFLE's node_modules rm -rf node_modules/mongodb diff --git a/.evergreen/run-data-lake-tests.sh b/.evergreen/run-data-lake-tests.sh index ebab0899ea6..8f62a1f16aa 100644 --- a/.evergreen/run-data-lake-tests.sh +++ b/.evergreen/run-data-lake-tests.sh @@ -2,7 +2,7 @@ set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" echo "$MONGODB_URI" npm run check:adl diff --git a/.evergreen/run-kerberos-tests.sh b/.evergreen/run-kerberos-tests.sh index 1c2b6d3b5f6..dd1e0c4c36d 100644 --- a/.evergreen/run-kerberos-tests.sh +++ b/.evergreen/run-kerberos-tests.sh @@ -2,7 +2,7 @@ set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" # set up keytab mkdir -p "$(pwd)/.evergreen" diff --git a/.evergreen/run-lambda-aws-tests.sh b/.evergreen/run-lambda-aws-tests.sh index ec0a24c200f..685d1781825 100644 --- a/.evergreen/run-lambda-aws-tests.sh +++ b/.evergreen/run-lambda-aws-tests.sh @@ -8,7 +8,7 @@ MONGODB_URI=${MONGODB_URI:-} set +x # load node.js environment -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" # the default connection string, may be overridden by the environment script export MONGODB_URI="mongodb://localhost:27017/aws" diff --git a/.evergreen/run-lambda-tests.sh b/.evergreen/run-lambda-tests.sh index 6b632984fb2..be7101a188d 100644 --- a/.evergreen/run-lambda-tests.sh +++ b/.evergreen/run-lambda-tests.sh @@ -8,6 +8,6 @@ MONGODB_URI=${MONGODB_URI:-} set +x # load node.js environment -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" npm run check:lambda diff --git a/.evergreen/run-ldap-tests.sh b/.evergreen/run-ldap-tests.sh index 10725da1b62..3354aab3038 100644 --- a/.evergreen/run-ldap-tests.sh +++ b/.evergreen/run-ldap-tests.sh @@ -2,6 +2,6 @@ set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" npm run check:ldap diff --git a/.evergreen/run-lint-checks.sh b/.evergreen/run-lint-checks.sh index fac14cef0dc..1c57972c316 100644 --- a/.evergreen/run-lint-checks.sh +++ b/.evergreen/run-lint-checks.sh @@ -1,7 +1,7 @@ #!/bin/bash set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" # Attempt to update our EVG config # if it changes, crash so that any gen script changes are forced to be run before pushing diff --git a/.evergreen/run-mongodb-aws-ecs-test.sh b/.evergreen/run-mongodb-aws-ecs-test.sh index e133a49fe77..c0844d2c060 100755 --- a/.evergreen/run-mongodb-aws-ecs-test.sh +++ b/.evergreen/run-mongodb-aws-ecs-test.sh @@ -11,7 +11,7 @@ tar -xzf src.tgz . # load node.js set +x -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -x # run the tests diff --git a/.evergreen/run-mongodb-aws-test.sh b/.evergreen/run-mongodb-aws-test.sh index 84389e3ed70..b5fa843f20c 100755 --- a/.evergreen/run-mongodb-aws-test.sh +++ b/.evergreen/run-mongodb-aws-test.sh @@ -8,7 +8,7 @@ MONGODB_URI=${MONGODB_URI:-} set +x # load node.js environment -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" # the default connection string, may be overridden by the environment script export MONGODB_URI="mongodb://localhost:27017/aws?authMechanism=MONGODB-AWS" diff --git a/.evergreen/run-mongosh-integration-tests.sh b/.evergreen/run-mongosh-integration-tests.sh index 40ee5d08324..2d3ff53beb0 100644 --- a/.evergreen/run-mongosh-integration-tests.sh +++ b/.evergreen/run-mongosh-integration-tests.sh @@ -16,7 +16,7 @@ if [ -z ${TASK_ID+omitted} ]; then echo "TASK_ID is unset" && exit 1; fi MONGOSH_RUN_ONLY_IN_PACKAGE=${MONGOSH_RUN_ONLY_IN_PACKAGE:-""} -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" npm cache clear --force || true npm i -g npm@8.x || true diff --git a/.evergreen/run-mongosh-scope-test.sh b/.evergreen/run-mongosh-scope-test.sh index 64886f608d1..99345bc0acb 100644 --- a/.evergreen/run-mongosh-scope-test.sh +++ b/.evergreen/run-mongosh-scope-test.sh @@ -2,7 +2,7 @@ if [ -z ${TASK_ID+omitted} ]; then echo "TASK_ID is unset" && exit 1; fi -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" MONGOSH_DIRECTORY="/tmp/$TASK_ID" git clone --depth=10 https://github.com/mongodb-js/mongosh.git $MONGOSH_DIRECTORY diff --git a/.evergreen/run-ocsp-tests.sh b/.evergreen/run-ocsp-tests.sh index 4f96b1e86b4..a9006714e32 100644 --- a/.evergreen/run-ocsp-tests.sh +++ b/.evergreen/run-ocsp-tests.sh @@ -3,7 +3,7 @@ set -o xtrace set -o errexit # load node.js environment -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" # $PYTHON_BINARY -m virtualenv --never-download --no-wheel ocsptest # . ocsptest/bin/activate diff --git a/.evergreen/run-serverless-tests.sh b/.evergreen/run-serverless-tests.sh index 55cacd6b6da..f3b1b9ece77 100755 --- a/.evergreen/run-serverless-tests.sh +++ b/.evergreen/run-serverless-tests.sh @@ -10,8 +10,7 @@ if [ -z ${MONGODB_URI+omitted} ]; then echo "MONGODB_URI is unset" && exit 1; fi if [ -z ${SERVERLESS_ATLAS_USER+omitted} ]; then echo "SERVERLESS_ATLAS_USER is unset" && exit 1; fi if [ -z ${SERVERLESS_ATLAS_PASSWORD+omitted} ]; then echo "SERVERLESS_ATLAS_PASSWORD is unset" && exit 1; fi -# TODO(NODE-5180): remove --force option -npm install --force 'mongodb-client-encryption@alpha' +npm install "mongodb-client-encryption@2.x" npx mocha \ --config test/mocha_mongodb.json \ diff --git a/.evergreen/run-snappy-version-test.sh b/.evergreen/run-snappy-version-test.sh index 15df4a577d9..54dddc6a19a 100644 --- a/.evergreen/run-snappy-version-test.sh +++ b/.evergreen/run-snappy-version-test.sh @@ -1,6 +1,6 @@ #! /usr/bin/env bash -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" export MONGODB_URI="${MONGODB_URI}" npm i --no-save snappy@6 diff --git a/.evergreen/run-socks5-tests.sh b/.evergreen/run-socks5-tests.sh index 5924a10d7ab..6e0e8aa3452 100644 --- a/.evergreen/run-socks5-tests.sh +++ b/.evergreen/run-socks5-tests.sh @@ -1,6 +1,6 @@ #!/bin/bash -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -o errexit # Exit the script with error if any of the commands fail set -o xtrace # For debuggability, no external credentials are used here diff --git a/.evergreen/run-tests.sh b/.evergreen/run-tests.sh index 7600e2ebeff..585e7812001 100755 --- a/.evergreen/run-tests.sh +++ b/.evergreen/run-tests.sh @@ -29,7 +29,7 @@ echo "Running $AUTH tests over $SSL, connecting to $MONGODB_URI" if [[ -z "${SKIP_DEPS}" ]]; then source "${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh" else - source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" + source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" fi if [ "$COMPRESSOR" != "" ]; then @@ -50,12 +50,12 @@ else echo "adding temporary AWS credentials to environment" # CSFLE_AWS_TEMP_ACCESS_KEY_ID, CSFLE_AWS_TEMP_SECRET_ACCESS_KEY, CSFLE_AWS_TEMP_SESSION_TOKEN source "$DRIVERS_TOOLS"/.evergreen/csfle/set-temp-creds.sh + + npm install "mongodb-client-encryption@2.x" fi -# TODO(NODE-5180): remove --force option -npm install --force 'mongodb-client-encryption@alpha' -npm install --force @mongodb-js/zstd -npm install --force snappy +npm install @mongodb-js/zstd +npm install snappy export AUTH=$AUTH export SINGLE_MONGOS_LB_URI=${SINGLE_MONGOS_LB_URI} diff --git a/.evergreen/run-tls-tests.sh b/.evergreen/run-tls-tests.sh index c8c3e83dc6f..f5f30af7164 100644 --- a/.evergreen/run-tls-tests.sh +++ b/.evergreen/run-tls-tests.sh @@ -2,7 +2,7 @@ set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" export SSL_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem" export SSL_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem" diff --git a/.evergreen/run-typescript.sh b/.evergreen/run-typescript.sh index 0a33654cf6b..703f86ab240 100644 --- a/.evergreen/run-typescript.sh +++ b/.evergreen/run-typescript.sh @@ -1,7 +1,7 @@ #!/bin/bash set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -o xtrace @@ -31,7 +31,8 @@ function get_ts_version() { export TSC="./node_modules/typescript/bin/tsc" export TS_VERSION=$(get_ts_version) -npm install --no-save --force typescript@"$TS_VERSION" +# On old versions of TS we need to put the node types back to 18.11.19 +npm install --no-save --force typescript@"$TS_VERSION" "$(if [[ $TS_VERSION == '4.1.6' ]]; then echo "@types/node@18.11.19"; else echo ""; fi)" echo "Typescript $($TSC -v)" diff --git a/.evergreen/run-unit-tests.sh b/.evergreen/run-unit-tests.sh index e4d8f36f6c6..a1ab8e3a1a1 100644 --- a/.evergreen/run-unit-tests.sh +++ b/.evergreen/run-unit-tests.sh @@ -1,7 +1,7 @@ #!/bin/bash set -o errexit # Exit the script with error if any of the commands fail -source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh" +source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh" set -o xtrace npx nyc npm run check:unit diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml new file mode 100644 index 00000000000..28e68503b21 --- /dev/null +++ b/.github/actions/setup/action.yml @@ -0,0 +1,15 @@ +name: Setup +description: 'Installs node, driver dependencies, and builds source' + +runs: + using: composite + steps: + - uses: actions/setup-node@v3 + with: + node-version: 'lts/*' + cache: 'npm' + registry-url: 'https://registry.npmjs.org' + - run: npm install -g npm@latest + shell: bash + - run: npm clean-install + shell: bash diff --git a/.github/scripts/highlights.mjs b/.github/scripts/highlights.mjs new file mode 100644 index 00000000000..6df213dced8 --- /dev/null +++ b/.github/scripts/highlights.mjs @@ -0,0 +1,82 @@ +// @ts-check +import * as process from 'node:process'; +import { Octokit } from '@octokit/core'; +import { output } from './util.mjs'; + +const { + GITHUB_TOKEN = '', + PR_LIST = '', + owner = 'mongodb', + repo = 'node-mongodb-native' +} = process.env; +if (GITHUB_TOKEN === '') throw new Error('GITHUB_TOKEN cannot be empty'); + +const octokit = new Octokit({ + auth: GITHUB_TOKEN, + log: { + debug: msg => console.error('Octokit.debug', msg), + info: msg => console.error('Octokit.info', msg), + warn: msg => console.error('Octokit.warn', msg), + error: msg => console.error('Octokit.error', msg) + } +}); + +const prs = PR_LIST.split(',').map(pr => { + const prNum = Number(pr); + if (Number.isNaN(prNum)) + throw Error(`expected PR number list: ${PR_LIST}, offending entry: ${pr}`); + return prNum; +}); + +/** @param {number} pull_number */ +async function getPullRequestContent(pull_number) { + const startIndicator = 'RELEASE_HIGHLIGHT_START -->'; + const endIndicator = '