Skip to content

Commit

Permalink
DRIVERS-3030 Ensure mongosh download is properly working (#542)
Browse files Browse the repository at this point in the history
  • Loading branch information
blink1073 authored Nov 6, 2024
1 parent d9fb504 commit aeb2d4a
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 43 deletions.
52 changes: 11 additions & 41 deletions .evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -1286,12 +1252,16 @@ 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"
run_on: macos-14-arm64

- id: rhel8
display_name: "RHEL 80"
run_on: rhel80-small

- id: rhel9
display_name: "RHEL 9 x64"
run_on: rhel94-small
Expand Down
11 changes: 9 additions & 2 deletions .evergreen/mongosh-dl.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 re.match('1.1.1[e-w] ', 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)

Expand Down
59 changes: 59 additions & 0 deletions .evergreen/tests/test-mongodl.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit aeb2d4a

Please sign in to comment.