Skip to content

Commit b0898fb

Browse files
ci(NODE-5329): install npm to node_artifacts directory (#581)
1 parent 7e16636 commit b0898fb

File tree

8 files changed

+32
-28
lines changed

8 files changed

+32
-28
lines changed

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

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: 6 additions & 10 deletions
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:-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"
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,20 +93,13 @@ 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
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-bundling-test.sh

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

55
set -o xtrace
66
set -o errexit

.evergreen/run-checks.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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
npm run check:lint

.evergreen/run-eslint-plugin-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
set -o errexit
44

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

77
cd etc/eslint/no-bigint-usage
88
npm install

.evergreen/run-tests.sh

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

55
case $1 in
66
"node")

.evergreen/run-typescript.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env 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

0 commit comments

Comments
 (0)