From b4fc13d55472ae1d5597ac1d54e148749799ac11 Mon Sep 17 00:00:00 2001 From: Tiago Melo Date: Fri, 27 Jul 2018 11:38:41 +0100 Subject: [PATCH] mgr/dashboard: Replace "npm install" with "npm ci" "npm ci" is the recommended command to install dependencies in a continuous integration system. It will make sure node_modules is empty and that the version in "package-lock.json" match the ones in "package.json" Signed-off-by: Tiago Melo --- make-dist | 7 ++++--- src/pybind/mgr/dashboard/CMakeLists.txt | 4 ++-- src/pybind/mgr/dashboard/HACKING.rst | 2 +- src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/make-dist b/make-dist index eb9aa7b0f2bf3..d4d5f7e62f943 100755 --- a/make-dist +++ b/make-dist @@ -80,11 +80,12 @@ build_dashboard_frontend() { TEMP_DIR=`mktemp -d` $CURR_DIR/src/tools/setup-virtualenv.sh --python=$(_python_autoselect) $TEMP_DIR $TEMP_DIR/bin/pip install nodeenv - $TEMP_DIR/bin/nodeenv -p -n 8.10.0 + $TEMP_DIR/bin/nodeenv -p --node=8.11.3 cd src/pybind/mgr/dashboard/frontend . $TEMP_DIR/bin/activate - npm install - npm run build -- --prod + npm i -g npm --unsafe-perm + npm ci + npm run build -- --prod --progress=false deactivate cd $CURR_DIR rm -rf $TEMP_DIR diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt index 239af838de8ae..7c77dafb8b098 100644 --- a/src/pybind/mgr/dashboard/CMakeLists.txt +++ b/src/pybind/mgr/dashboard/CMakeLists.txt @@ -34,7 +34,7 @@ add_custom_command( OUTPUT "${mgr-dashboard-nodeenv}/bin/npm" COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv} COMMAND ${mgr-dashboard-nodeenv}/bin/pip install nodeenv - COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p -n 8.11.3 + COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p --node=8.11.3 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "dashboard nodeenv is being installed" ) @@ -45,7 +45,7 @@ add_custom_target(mgr-dashboard-nodeenv add_npm_command( OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules" - COMMAND npm install + COMMAND npm i -g npm@6.2.0 --unsafe-perm && npm ci DEPENDS frontend/package.json WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend COMMENT "dashboard frontend dependencies are being installed" diff --git a/src/pybind/mgr/dashboard/HACKING.rst b/src/pybind/mgr/dashboard/HACKING.rst index ad0fe34624658..5faeee2ec487e 100644 --- a/src/pybind/mgr/dashboard/HACKING.rst +++ b/src/pybind/mgr/dashboard/HACKING.rst @@ -16,7 +16,7 @@ Prerequisites ~~~~~~~~~~~~~ * Node 8.9.0 or higher - * NPM 5.5.1 or higher + * NPM 5.7.0 or higher nodeenv: During Ceph's build we create a virtualenv with ``node`` and ``npm`` diff --git a/src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh b/src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh index 190175edd8f51..413bf4f018217 100755 --- a/src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh +++ b/src/pybind/mgr/dashboard/run-frontend-e2e-tests.sh @@ -49,7 +49,7 @@ fi cd $DASH_DIR/frontend jq '.["/api/"].target'=$BASE_URL proxy.conf.json.sample | jq '.["/ui-api/"].target'=$BASE_URL > proxy.conf.json . $BUILD_DIR/src/pybind/mgr/dashboard/node-env/bin/activate -npm install +npm ci if [ $DEVICE == "chrome" ]; then npm run e2e || stop -- 2.39.5