From f4a78587b066d82b99491b6d7800fee5904e0fef Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Wed, 13 May 2020 05:06:11 -0400 Subject: [PATCH] Make npm-postinstall.sh more robust --- README.md | 4 ++-- ci/build/npm-postinstall.sh | 22 +++++++++++++++++++--- ci/steps/release-static.sh | 3 +++ package.json | 2 +- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 09302694..d1e670a1 100644 --- a/README.md +++ b/README.md @@ -35,8 +35,8 @@ systemctl --user enable --now code-server ### npm -**note:** Installing via `npm` requires building native module dependencies. See [./doc/npm.md](./doc/npm.md) -for the dependency install process depending on your OS. +**note:** Installing via `npm` requires certain dependencies for the native module builds. +See [./doc/npm.md](./doc/npm.md) for installing these dependencies. ```bash npm install -g code-server diff --git a/ci/build/npm-postinstall.sh b/ci/build/npm-postinstall.sh index 2b37bd1d..6f0df6a8 100755 --- a/ci/build/npm-postinstall.sh +++ b/ci/build/npm-postinstall.sh @@ -4,18 +4,34 @@ set -eu main() { cd lib/vscode + case "${npm_config_user_agent-}" in npm*) + # We are running under npm. + if [ "${npm_config_unsafe_perm-}" != "true" ]; then + echo "Please pass --unsafe-perm to npm to install code-server" + echo "Otherwise the postinstall script does not have permissions to run" + echo "See https://docs.npmjs.com/misc/config#unsafe-perm" + echo "See https://stackoverflow.com/questions/49084929/npm-sudo-global-installation-unsafe-perm" + exit 1 + fi + ;; + esac + # We have to rename node_modules.bundled to node_modules. # The bundled modules were renamed originally to avoid being ignored by yarn. - local node_modules node_modules="$(find . -depth -name "node_modules.bundled")" - local nm for nm in $node_modules; do rm -Rf "${nm%.bundled}" mv "$nm" "${nm%.bundled}" done + # $npm_config_global makes npm rebuild return without rebuilding. + unset npm_config_global # Rebuilds native modules. - npm rebuild + if ! npm rebuild; then + echo "You may not have the required dependencies to build the native modules." + echo "Please see https://github.com/cdr/code-server/blob/master/doc/npm.md" + exit 1 + fi } main "$@" diff --git a/ci/steps/release-static.sh b/ci/steps/release-static.sh index 63c1b778..cd2514e7 100755 --- a/ci/steps/release-static.sh +++ b/ci/steps/release-static.sh @@ -4,6 +4,9 @@ set -euo pipefail main() { cd "$(dirname "$0")/../.." + # https://github.com/actions/upload-artifact/issues/38 + chmod +x $(grep -rl '^#!/.\+' release) + yarn release:static yarn test:static-release yarn package diff --git a/package.json b/package.json index 8e0d820b..aed1e9d6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-server", "license": "MIT", - "version": "3.3.0-rc.21", + "version": "3.3.0-rc.24", "description": "Run VS Code on a remote server.", "homepage": "https://github.com/cdr/code-server", "bugs": {