Skip to content

Commit 7f5b334

Browse files
ci(NODE-5334): install npm to node_artifacts directory in CI (#3709)
1 parent e13038d commit 7f5b334

24 files changed

+48
-48
lines changed

.evergreen/init-node-and-npm-env.sh

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#! /usr/bin/env bash
2+
##
3+
## This script add the location of `npm` and `node` to the path.
4+
## This is necessary because evergreen uses separate bash scripts for
5+
## different functions in a given CI run but doesn't persist the environment
6+
## across them. So we manually invoke this script everywhere we need
7+
## access to `npm`, `node`, or need to install something globally from
8+
## npm.
9+
10+
NODE_ARTIFACTS_PATH="${PROJECT_DIRECTORY}/node-artifacts"
11+
if [[ "$OS" == "Windows_NT" ]]; then
12+
NODE_ARTIFACTS_PATH=$(cygpath --unix "$NODE_ARTIFACTS_PATH")
13+
fi
14+
15+
export NODE_ARTIFACTS_PATH
16+
# npm uses this environment variable to determine where to install global packages
17+
export npm_global_prefix=$NODE_ARTIFACTS_PATH/npm_global
18+
export PATH="$npm_global_prefix/bin:$NODE_ARTIFACTS_PATH/nodejs/bin:$PATH"
19+
hash -r
20+
21+
export NODE_OPTIONS="--trace-deprecation --trace-warnings"

.evergreen/init-nvm.sh

-13
This file was deleted.

.evergreen/install-dependencies.sh

+6-14
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
set -o errexit # Exit the script with error if any of the commands fail
33

44
NODE_LTS_VERSION=${NODE_LTS_VERSION:-12}
5-
NODE_ARTIFACTS_PATH="${PROJECT_DIRECTORY:-$(pwd)}/node-artifacts"
6-
if [[ "$OS" = "Windows_NT" ]]; then NODE_ARTIFACTS_PATH=$(cygpath --unix "$NODE_ARTIFACTS_PATH"); fi
5+
6+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
7+
8+
if [[ -z "${npm_global_prefix}" ]]; then echo "npm_global_prefix is unset" && exit 1; fi
9+
if [[ -z "${NODE_ARTIFACTS_PATH}" ]]; then echo "NODE_ARTIFACTS_PATH is unset" && exit 1; fi
710

811
CURL_FLAGS=(
912
--fail # Exit code 1 if request fails
@@ -90,25 +93,14 @@ else
9093
mv "${NODE_ARTIFACTS_PATH}/${node_directory}" "${NODE_ARTIFACTS_PATH}/nodejs"
9194
fi
9295

93-
export PATH="$NODE_ARTIFACTS_PATH/npm_global/bin:$NODE_ARTIFACTS_PATH/nodejs/bin:$PATH"
94-
hash -r
95-
96-
# Set npm -g prefix to our local artifacts directory
97-
cat <<EOT > .npmrc
98-
prefix=$NODE_ARTIFACTS_PATH/npm_global
99-
EOT
100-
10196
# Cannot upgrade npm version for node 12
10297
if [[ $operating_system != "win" ]] && [[ $NODE_LTS_VERSION != 12 ]]; then
10398
# Update npm to latest when we can
10499
npm install --global npm@latest
105100
hash -r
106-
elif [[ $NODE_LTS_VERSION == 12 ]]; then
107-
# Node.js 12 can run up to npm v8
108-
npm install --global npm@8
109-
hash -r
110101
fi
111102

103+
echo "npm location: $(which npm)"
112104
echo "npm version: $(npm -v)"
113105

114106
npm install "${NPM_OPTIONS}"

.evergreen/run-atlas-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -o errexit # Exit the script with error if any of the commands fail
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
5+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
66

77
set -o xtrace
88

.evergreen/run-benchmarks.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /bin/bash
22

3-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
3+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
44

55
export MONGODB_URI=$MONGODB_URI
66

.evergreen/run-bson-ext-test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
3+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
44

55
set -o xtrace # Write all commands first to stderr
66
set -o errexit # Exit the script with error if any of the commands fail

.evergreen/run-custom-csfle-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export CSFLE_KMS_PROVIDERS=${CSFLE_KMS_PROVIDERS}
1212
export CRYPT_SHARED_LIB_PATH=${CRYPT_SHARED_LIB_PATH}
1313
echo "csfle CRYPT_SHARED_LIB_PATH: $CRYPT_SHARED_LIB_PATH"
1414

15-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
15+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
1616

1717
set -o xtrace # Write all commands first to stderr
1818
set -o errexit # Exit the script with error if any of the commands fail

.evergreen/run-data-lake-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -o errexit # Exit the script with error if any of the commands fail
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
5+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
66

77
echo "$MONGODB_URI"
88
npm run check:adl

.evergreen/run-kerberos-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -o errexit # Exit the script with error if any of the commands fail
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
5+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
66

77
# set up keytab
88
mkdir -p "$(pwd)/.evergreen"

.evergreen/run-lambda-aws-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ MONGODB_URI=${MONGODB_URI:-}
88
set +x
99

1010
# load node.js environment
11-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
11+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
1212

1313
# the default connection string, may be overridden by the environment script
1414
export MONGODB_URI="mongodb://localhost:27017/aws"

.evergreen/run-lambda-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ MONGODB_URI=${MONGODB_URI:-}
88
set +x
99

1010
# load node.js environment
11-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
11+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
1212

1313
npm run check:lambda

.evergreen/run-ldap-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
set -o errexit # Exit the script with error if any of the commands fail
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
5+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
66

77
npm run check:ldap

.evergreen/run-lint-checks.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -o errexit # Exit the script with error if any of the commands fail
33

4-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
4+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
55

66
# Attempt to update our EVG config
77
# if it changes, crash so that any gen script changes are forced to be run before pushing

.evergreen/run-mongodb-aws-ecs-test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ tar -xzf src.tgz .
1111

1212
# load node.js
1313
set +x
14-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
14+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
1515
set -x
1616

1717
# run the tests

.evergreen/run-mongodb-aws-test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ MONGODB_URI=${MONGODB_URI:-}
88
set +x
99

1010
# load node.js environment
11-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
11+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
1212

1313
# the default connection string, may be overridden by the environment script
1414
export MONGODB_URI="mongodb://localhost:27017/aws?authMechanism=MONGODB-AWS"

.evergreen/run-mongosh-integration-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ if [ -z ${TASK_ID+omitted} ]; then echo "TASK_ID is unset" && exit 1; fi
1616

1717
MONGOSH_RUN_ONLY_IN_PACKAGE=${MONGOSH_RUN_ONLY_IN_PACKAGE:-""}
1818

19-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
19+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
2020

2121
npm cache clear --force || true
2222
npm i -g npm@8.x || true

.evergreen/run-mongosh-scope-test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
if [ -z ${TASK_ID+omitted} ]; then echo "TASK_ID is unset" && exit 1; fi
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
5+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
66

77
MONGOSH_DIRECTORY="/tmp/$TASK_ID"
88
git clone --depth=10 https://github.com/mongodb-js/mongosh.git $MONGOSH_DIRECTORY

.evergreen/run-ocsp-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -o xtrace
33
set -o errexit
44

55
# load node.js environment
6-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
6+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
77

88
# $PYTHON_BINARY -m virtualenv --never-download --no-wheel ocsptest
99
# . ocsptest/bin/activate

.evergreen/run-snappy-version-test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#! /usr/bin/env bash
22

3-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
3+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
44
export MONGODB_URI="${MONGODB_URI}"
55

66
npm i --no-save snappy@6

.evergreen/run-socks5-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/bash
22

3-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
3+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
44

55
set -o errexit # Exit the script with error if any of the commands fail
66
set -o xtrace # For debuggability, no external credentials are used here

.evergreen/run-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ echo "Running $AUTH tests over $SSL, connecting to $MONGODB_URI"
2929
if [[ -z "${SKIP_DEPS}" ]]; then
3030
source "${PROJECT_DIRECTORY}/.evergreen/install-dependencies.sh"
3131
else
32-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
32+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
3333
fi
3434

3535
if [ "$COMPRESSOR" != "" ]; then

.evergreen/run-tls-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -o errexit # Exit the script with error if any of the commands fail
44

5-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
5+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
66

77
export SSL_KEY_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/client.pem"
88
export SSL_CA_FILE="$DRIVERS_TOOLS/.evergreen/x509gen/ca.pem"

.evergreen/run-typescript.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -o errexit # Exit the script with error if any of the commands fail
33

4-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
4+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
55

66
set -o xtrace
77

.evergreen/run-unit-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -o errexit # Exit the script with error if any of the commands fail
33

4-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
4+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
55
set -o xtrace
66

77
npx nyc npm run check:unit

0 commit comments

Comments
 (0)