2
2
# set -o xtrace # Write all commands first to stderr
3
3
set -o errexit # Exit the script with error if any of the commands fail
4
4
5
+ echo " in .evergreen/install-dependencies.sh - SKIP_INSTALL=$SKIP_INSTALL "
6
+
7
+ NVM_WINDOWS_URL=" https://github.com/coreybutler/nvm-windows/releases/download/1.1.7/nvm-noinstall.zip"
8
+ NVM_URL=" https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh"
9
+
5
10
NODE_LTS_NAME=${NODE_LTS_NAME:- carbon}
6
11
NODE_ARTIFACTS_PATH=" ${PROJECT_DIRECTORY} /node-artifacts"
7
12
NPM_CACHE_DIR=" ${NODE_ARTIFACTS_PATH} /npm"
@@ -16,22 +21,91 @@ mkdir -p ${NODE_ARTIFACTS_PATH}
16
21
mkdir -p ${NPM_CACHE_DIR}
17
22
mkdir -p " ${NPM_TMP_DIR} "
18
23
19
- # install Node.js
20
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.35.3/install.sh | bash
21
- [ -s " ${NVM_DIR} /nvm.sh" ] && \. " ${NVM_DIR} /nvm.sh"
22
- nvm install --no-progress --lts=${NODE_LTS_NAME}
24
+ node_lts_version () {
25
+ case $1 in
26
+ " argon" )
27
+ VERSION=4
28
+ ;;
29
+ " boron" )
30
+ VERSION=6
31
+ ;;
32
+ " carbon" )
33
+ VERSION=8
34
+ ;;
35
+ " dubnium" )
36
+ VERSION=10
37
+ ;;
38
+ " erbium" )
39
+ VERSION=12
40
+ ;;
41
+ " fermium" )
42
+ VERSION=14
43
+ ;;
44
+ * )
45
+ echo " Unsupported Node LTS version $1 "
46
+ exit 1
47
+ ;;
48
+ esac
49
+ NODE_VERSION=$( curl -s -o- https://nodejs.org/download/release/latest-v${VERSION} .x/SHASUMS256.txt \
50
+ | head -n 1 | awk ' {print $2};' | cut -d- -f2)
51
+ export NODE_VERSION=${NODE_VERSION: 1}
52
+ }
53
+
54
+ # install Node.js on Windows
55
+ if [[ " $OS " == " Windows_NT" || " $PLATFORM " == " windows-64" ]]; then
56
+ echo " --- Installing nvm on Windows ---"
57
+ node_lts_version $NODE_LTS_NAME
58
+ echo " NODE_VERSION=$NODE_VERSION "
59
+
60
+ export NVM_HOME=` cygpath -w " $NVM_DIR " `
61
+ export NVM_SYMLINK=` cygpath -w " $NODE_ARTIFACTS_PATH /bin" `
62
+ export NVM_ARTIFACTS_PATH=` cygpath -w " $NODE_ARTIFACTS_PATH /bin" `
63
+ export PATH=` cygpath $NVM_SYMLINK ` :` cygpath $NVM_HOME ` :$PATH
64
+
65
+ curl -L $NVM_WINDOWS_URL -o nvm.zip
66
+ unzip -d $NVM_DIR nvm.zip
67
+ rm nvm.zip
68
+
69
+ chmod 777 $NVM_DIR
70
+ chmod -R a+rx $NVM_DIR
23
71
24
- # setup npm cache in a local directory
25
- cat << EOT > .npmrc
72
+ cat << EOT > $NVM_DIR /settings.txt
73
+ root: $NVM_HOME
74
+ path: $NVM_SYMLINK
75
+ EOT
76
+ nvm install $NODE_VERSION
77
+ nvm use $NODE_VERSION
78
+
79
+ npm config set msvs_version 2017
80
+ echo " Windows install done"
81
+
82
+ # install Node.js on Linux/MacOS
83
+ else
84
+ echo " --- Installing nvm on Linux/MacOS ---"
85
+ curl -o- $NVM_URL | bash
86
+ [ -s " ${NVM_DIR} /nvm.sh" ] && \. " ${NVM_DIR} /nvm.sh"
87
+ nvm install --no-progress --lts=${NODE_LTS_NAME}
88
+
89
+ # setup npm cache in a local directory
90
+ cat << EOT > .npmrc
26
91
devdir=${NPM_CACHE_DIR} /.node-gyp
27
92
init-module=${NPM_CACHE_DIR} /.npm-init.js
28
93
cache=${NPM_CACHE_DIR}
29
94
tmp=${NPM_TMP_DIR}
30
95
registry=https://registry.npmjs.org
31
96
EOT
32
97
98
+ echo " Linux/MacOS install done"
99
+
100
+ fi
101
+
33
102
# NOTE: registry was overridden to not use artifactory, remove the `registry` line when
34
103
# BUILD-6774 is resolved.
35
104
36
105
# install node dependencies
37
- npm install --unsafe-perm
106
+ if [[ " $SKIP_INSTALL " == " 1" ]]; then
107
+ echo " Skipping npm install"
108
+ else
109
+ echo " Running npm install"
110
+ npm install --unsafe-perm
111
+ fi
0 commit comments