[CCSDK] install node via nvm 23/143523/1
authorFiete Ostkamp <fiete.ostkamp@telekom.de>
Fri, 6 Mar 2026 14:06:36 +0000 (15:06 +0100)
committerFiete Ostkamp <fiete.ostkamp@telekom.de>
Fri, 6 Mar 2026 14:06:36 +0000 (15:06 +0100)
Issue-ID: CCSDK-4176
Change-Id: I833ed730de4e21d770113bfe41bf50c4ec27175a
Signed-off-by: Fiete Ostkamp <fiete.ostkamp@telekom.de>
jjb/ccsdk/cds-playwright-e2e.sh

index 0783870..33684bc 100755 (executable)
@@ -11,33 +11,52 @@ set -e -o pipefail
 
 echo "---> cds-playwright-e2e.sh"
 
-# ── Install Node.js 18 LTS ────────────────────────────────────────────────────
-echo "---> Installing Node.js 18"
-sudo apt-get update -qq
-sudo apt-get install -y -qq nodejs npm > /dev/null 2>&1
-sudo npm install -g n > /dev/null 2>&1
-sudo n 18 > /dev/null 2>&1
-hash -r
+# ── Install Node.js via nvm (no sudo/apt) ───────────────────────────────────
+NODE_VERSION="${NODE_VERSION:-18}"
+NVM_DIR="${NVM_DIR:-$HOME/.nvm}"
+export NVM_DIR
+
+echo "---> Preparing Node.js ${NODE_VERSION} with nvm"
+
+if [[ ! -s "$NVM_DIR/nvm.sh" ]]; then
+       echo "---> Installing nvm"
+       curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
+fi
+
+# shellcheck source=/dev/null disable=SC1090
+source "$NVM_DIR/nvm.sh"
+
+nvm install "$NODE_VERSION"
+nvm use "$NODE_VERSION"
+
 echo "Node.js version: $(node --version)"
 echo "npm version:     $(npm --version)"
 
+npm_install() {
+       if [[ -f package-lock.json ]]; then
+               npm ci
+       else
+               npm install
+       fi
+}
+
 # ── Install dependencies for each component ───────────────────────────────────
 
 echo "---> Installing server (LoopBack BFF) dependencies"
 cd "$WORKSPACE/cds-ui/server"
-npm install
+npm_install
 
 echo "---> Installing designer-client (Angular) dependencies"
 cd "$WORKSPACE/cds-ui/designer-client"
-npm install
+npm_install
 
 echo "---> Installing e2e-playwright dependencies"
 cd "$WORKSPACE/cds-ui/e2e-playwright"
-npm install
+npm_install
 
-# ── Install Playwright browser (Firefox, matching the config) ──────────────────
-echo "---> Installing Playwright Firefox browser with system dependencies"
-npx playwright install --with-deps firefox
+# ── Install Playwright browser (Firefox, matching the config) ────────────────
+echo "---> Installing Playwright Firefox browser"
+npx playwright install firefox
 
 # ── Run the tests ──────────────────────────────────────────────────────────────
 echo "---> Running Playwright e2e tests (CI=true)"