Skip to content

Commit b020026

Browse files
ci(NODE-5333): download npm to local directory instead of globally (mongodb#3700)
1 parent c2abd89 commit b020026

30 files changed

+53
-49
lines changed

.evergreen/config.in.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,7 @@ functions:
526526
working_dir: "src"
527527
script: |
528528
${PREPARE_SHELL}
529-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
529+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
530530
npm install @aws-sdk/credential-providers
531531
532532
"run atlas tests":

.evergreen/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -471,7 +471,7 @@ functions:
471471
working_dir: src
472472
script: |
473473
${PREPARE_SHELL}
474-
source "${PROJECT_DIRECTORY}/.evergreen/init-nvm.sh"
474+
source "${PROJECT_DIRECTORY}/.evergreen/init-node-and-npm-env.sh"
475475
npm install @aws-sdk/credential-providers
476476
run atlas tests:
477477
- command: shell.exec

.evergreen/copy-driver-to-azure.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ if [ -z ${AZUREKMS_RESOURCEGROUP+omitted} ]; then echo "AZUREKMS_RESOURCEGROUP i
66
if [ -z ${AZUREKMS_VMNAME+omitted} ]; then echo "AZUREKMS_VMNAME is unset" && exit 1; fi
77
if [ -z ${AZUREKMS_PRIVATEKEYPATH+omitted} ]; then echo "AZUREKMS_PRIVATEKEYPATH is unset" && exit 1; fi
88

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

1111
echo "compressing node driver source ... begin"
1212
tar -czf node-driver-source.tgz src
Lines changed: 21 additions & 0 deletions
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

Lines changed: 0 additions & 13 deletions
This file was deleted.

.evergreen/install-dependencies.sh

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
set -o errexit # Exit the script with error if any of the commands fail
33

44
NODE_LTS_VERSION=${NODE_LTS_VERSION:-14}
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"
77

88
CURL_FLAGS=(
99
--fail # Exit code 1 if request fails
@@ -93,17 +93,13 @@ fi
9393
export PATH="$NODE_ARTIFACTS_PATH/npm_global/bin:$NODE_ARTIFACTS_PATH/nodejs/bin:$PATH"
9494
hash -r
9595

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
if [[ $operating_system != "win" ]]; then
10297
# Update npm to latest when we can
10398
npm install --global npm@latest
10499
hash -r
105100
fi
106101

102+
echo "npm location: $(which npm)"
107103
echo "npm version: $(npm -v)"
108104

109105
npm install "${NPM_OPTIONS}"

.evergreen/run-atlas-tests.sh

Lines changed: 1 addition & 1 deletion
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-azure-kms-tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -o errexit
55
pushd "src"
66
PROJECT_DIRECTORY="$(pwd)"
77
export PROJECT_DIRECTORY
8-
source ".evergreen/init-nvm.sh"
8+
source ".evergreen/init-node-and-npm-env.sh"
99

1010
set -o xtrace
1111

.evergreen/run-benchmarks.sh

Lines changed: 1 addition & 1 deletion
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-custom-csfle-tests.sh

Lines changed: 1 addition & 1 deletion
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

0 commit comments

Comments
 (0)