diff --git a/.evergreen/config.yml b/.evergreen/config.yml index 9a5cce97..e0e3f909 100644 --- a/.evergreen/config.yml +++ b/.evergreen/config.yml @@ -512,52 +512,18 @@ functions: make test "run mongodl test partial": - - command: shell.exec + - command: subprocess.exec type: test params: - shell: bash - script: |- - set -o errexit - cd ${DRIVERS_TOOLS}/.evergreen - . find-python3.sh - PYTHON=$(ensure_python3) - echo "Using PYTHON: $PYTHON" - $PYTHON mongodl.py --edition enterprise --version 7.0 --component archive-debug --no-download - $PYTHON mongodl.py --edition enterprise --version 7.0 --component cryptd --test - $PYTHON mongosh-dl.py --no-download - $PYTHON mongosh-dl.py --version 2.1.1 --no-download - $PYTHON mongosh-dl.py --version 2.1.1 --out $(pwd) + binary: bash + args: [src/.evergreen/tests/test-mongodl.sh, partial] "run mongodl test full": - - command: shell.exec + - command: subprocess.exec type: test params: - shell: bash - script: |- - set -o errexit - cd ${DRIVERS_TOOLS}/.evergreen - . find-python3.sh - PYTHON=$(ensure_python3 2>/dev/null) - echo "Using PYTHON: $PYTHON" - # Ensure that all distros are accounted for in DISTRO_ID_TO_TARGET - export VALIDATE_DISTROS=1 - $PYTHON mongodl.py --list - if [ "$OS" != "Windows_NT" ]; then - $PYTHON mongodl.py --edition enterprise --version 7.0.1 --component archive-debug --test - fi - $PYTHON mongodl.py --edition enterprise --version 3.6 --component archive --test - $PYTHON mongodl.py --edition enterprise --version 4.0 --component archive --test - $PYTHON mongodl.py --edition enterprise --version 4.2 --component archive --test - $PYTHON mongodl.py --edition enterprise --version 4.4 --component archive --test - $PYTHON mongodl.py --edition enterprise --version 5.0 --component archive --test - $PYTHON mongodl.py --edition enterprise --version 6.0 --component crypt_shared --test - $PYTHON mongodl.py --edition enterprise --version 8.0 --component archive --test - $PYTHON mongodl.py --edition enterprise --version rapid --component archive --test - $PYTHON mongodl.py --edition enterprise --version latest --component archive --out $(pwd) - $PYTHON mongodl.py --edition enterprise --version v6.0-perf --component cryptd --test - $PYTHON mongodl.py --edition enterprise --version v8.0-perf --component cryptd --test - $PYTHON mongosh-dl.py --no-download - $PYTHON mongosh-dl.py --version 2.1.1 --out $(pwd) + binary: bash + args: [src/.evergreen/tests/test-mongodl.sh] "teardown assets": - command: subprocess.exec @@ -1287,7 +1253,7 @@ axes: - id: amazon-2023-x64 display_name: "Amazon Linux 2023 x64" - run_on: amazon2023.0-small + run_on: amazon2023.3-small - id: macos-14-arm64 display_name: "macOS 14 arm64" diff --git a/.evergreen/mongosh-dl.py b/.evergreen/mongosh-dl.py index 69cb8e86..fc072173 100644 --- a/.evergreen/mongosh-dl.py +++ b/.evergreen/mongosh-dl.py @@ -65,14 +65,21 @@ def _download(out_dir: Path, version: str, target: str, elif arch == "aarch64": arch = "arm64" if target == "linux": - suffix = ".tgz" + suffix = '.tgz' + if sys.platform == 'linux' and arch in ["x64", "arm64"]: + openssl = subprocess.check_output(["openssl", "version"]) + if "3.0" in openssl.decode('utf-8'): + suffix = "-openssl3.tgz" + elif "1.1" in openssl.decode('utf-8'): + suffix = "-openssl11.tgz" else: suffix = ".zip" dl_url = f"https://downloads.mongodb.com/compass/mongosh-{version}-{target}-{arch}{suffix}" + print(dl_url) if no_download: - print(dl_url) return ExpandResult.Okay + req = urllib.request.Request(dl_url) resp = urllib.request.urlopen(req) diff --git a/.evergreen/tests/test-mongodl.sh b/.evergreen/tests/test-mongodl.sh new file mode 100755 index 00000000..91e684a4 --- /dev/null +++ b/.evergreen/tests/test-mongodl.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +# Test mongodl and mongosh-dl. +set -eux + +SCRIPT_DIR=$(dirname ${BASH_SOURCE[0]}) +. $SCRIPT_DIR/../handle-paths.sh + +pushd $SCRIPT_DIR/.. + +. find-python3.sh +PYTHON=$(ensure_python3) +echo "Using PYTHON: $PYTHON" +DOWNLOAD_DIR=mongodl_test + +if [ "${OS:-}" != "Windows_NT" ]; then + $PYTHON mongodl.py --edition enterprise --version 7.0 --component archive-debug --no-download +else + DOWNLOAD_DIR=$(cygpath -m $DOWNLOAD_DIR) +fi + +$PYTHON mongodl.py --edition enterprise --version 7.0 --component archive --test +$PYTHON mongodl.py --edition enterprise --version 7.0 --component cryptd --out ${DOWNLOAD_DIR} --strip-path-components 1 +$PYTHON mongosh-dl.py --no-download +$PYTHON mongosh-dl.py --version 2.1.1 --no-download + +export PATH="${DOWNLOAD_DIR}/bin:$PATH" +if [ "${OS:-}" != "Windows_NT" ]; then + $PYTHON mongosh-dl.py --version 2.1.1 --out ${DOWNLOAD_DIR} --strip-path-components 1 + chmod +x ./mongodl_test/bin/mongosh + ./mongodl_test/bin/mongosh --version +else + $PYTHON mongosh-dl.py --version 2.1.1 --out ${DOWNLOAD_DIR} --strip-path-components 1 +fi + +if [ ${1:-} == "partial" ]; then + popd + make -C ${DRIVERS_TOOLS} test + exit 0 +fi + +# Ensure that all distros are accounted for in DISTRO_ID_TO_TARGET +export VALIDATE_DISTROS=1 +$PYTHON mongodl.py --list +$PYTHON mongodl.py --edition enterprise --version 7.0.6 --component archive --no-download +$PYTHON mongodl.py --edition enterprise --version 3.6 --component archive --test +$PYTHON mongodl.py --edition enterprise --version 4.0 --component archive --test +$PYTHON mongodl.py --edition enterprise --version 4.2 --component archive --test +$PYTHON mongodl.py --edition enterprise --version 4.4 --component archive --test +$PYTHON mongodl.py --edition enterprise --version 5.0 --component archive --test +$PYTHON mongodl.py --edition enterprise --version 6.0 --component crypt_shared --test +$PYTHON mongodl.py --edition enterprise --version 8.0 --component archive --test +$PYTHON mongodl.py --edition enterprise --version rapid --component archive --test +$PYTHON mongodl.py --edition enterprise --version latest --component archive --out ${DOWNLOAD_DIR} +$PYTHON mongodl.py --edition enterprise --version v6.0-perf --component cryptd --test +$PYTHON mongodl.py --edition enterprise --version v8.0-perf --component cryptd --test + +popd +make -C ${DRIVERS_TOOLS} test