Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion scripts/docker/ubuntu24.04-xvfb.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ RUN if [ -z "$NODE_JS_VERSION" ]; then echo "Error: NODE_JS_VERSION is not defin
ENV NODE_JS_VERSION=${NODE_JS_VERSION}
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get -y -qq install git curl apt-transport-https ca-certificates apt-utils software-properties-common
RUN apt-get -y -qq install git curl apt-transport-https ca-certificates apt-utils software-properties-common jq

# Install Node.js using nvm (reusing pattern from .evergreen/install-node.sh)
ENV NVM_DIR="/root/.nvm"
Expand All @@ -20,6 +20,9 @@ RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | b
# Set PATH so node/npm are available in all contexts
ENV PATH="$NVM_DIR/versions/node/v${NODE_JS_VERSION}/bin:$PATH"

# Install pnpm globally
RUN npm install -g pnpm

# Install vscode dependencies
RUN apt-get -y -qq install libnss3 gnupg libxkbfile1 libsecret-1-0 libsecret-1-dev libgtk-3-0t64 libxss1 libgbm1 libasound2t64 xvfb build-essential pkg-config

Expand Down
29 changes: 19 additions & 10 deletions testing/test-vscode.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ set -x
set -e
# just to make sure: we are in the mongosh root dir
test -x packages && grep -q '"name": "mongosh"' package.json
npm -v
pnpm -v
# we pick a target directory that is not affected by the mongosh node_modules directory
mongosh_root_dir=$PWD
test_root_dir=/tmp/mongosh-vscode-test
Expand All @@ -12,15 +12,24 @@ rm -rf "$test_root_dir" && mkdir -p "$test_root_dir"
cd "$test_root_dir"
git clone --depth=10 https://github.com/mongodb-js/vscode.git
cd vscode
npm install --force
rm -rf node_modules/@mongosh node_modules/mongodb node_modules/@mongodb-js/devtools-connect node_modules/@mongodb-js/devtools-proxy-support
(cd node_modules && \
ln -s "$mongosh_root_dir/packages" @mongosh && \
ln -s "$mongosh_root_dir/node_modules/mongodb" mongodb && \
cd @mongodb-js && \
ln -s "$mongosh_root_dir/node_modules/@mongodb-js/devtools-connect" devtools-connect && \
ln -s "$mongosh_root_dir/node_modules/@mongodb-js/devtools-proxy-support" devtools-proxy-support)
# Build overrides object for all local mongosh packages
overrides="{"
for pkg_dir in "$mongosh_root_dir"/packages/*/; do
if [ -f "$pkg_dir/package.json" ]; then
pkg_name=$(jq -r '.name' "$pkg_dir/package.json")
overrides="$overrides\"$pkg_name\":\"file:$pkg_dir\","
fi
done
# Add other required packages
overrides="$overrides\"mongodb\":\"file:$mongosh_root_dir/node_modules/mongodb\","
overrides="$overrides\"@mongodb-js/devtools-connect\":\"file:$mongosh_root_dir/node_modules/@mongodb-js/devtools-connect\","
overrides="$overrides\"@mongodb-js/devtools-proxy-support\":\"file:$mongosh_root_dir/node_modules/@mongodb-js/devtools-proxy-support\""
overrides="$overrides}"

# Add pnpm overrides to package.json
jq --argjson overrides "$overrides" '.pnpm.overrides = $overrides' package.json > package.json.tmp && mv package.json.tmp package.json
pnpm install
# This test can require a lot of memory so we bump the maximum size.
NODE_OPTIONS='--max-old-space-size=4096 --no-experimental-strip-types' npm test
NODE_OPTIONS='--max-old-space-size=4096 --no-experimental-strip-types' pnpm test
cd /tmp
rm -rf "$test_root_dir"
Loading