From d1acfad2a83fb4a4bc1c7670cf2315337273d05a Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Tue, 23 Aug 2022 11:36:24 -0700 Subject: [PATCH] chore: fix npm publish logic (#5493) * chore: clean up logging in npm script * fix: catch error if npm version missing npm changed the way the `npm view` command handles missing versions. Before it exited with a non-error. Now it errors. Ref: https://github.com/npm/cli/pull/5035 This modifies the script logic to handle those new changes. --- ci/steps/publish-npm.sh | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/ci/steps/publish-npm.sh b/ci/steps/publish-npm.sh index c2cca90d..cdbdb136 100755 --- a/ci/steps/publish-npm.sh +++ b/ci/steps/publish-npm.sh @@ -65,7 +65,8 @@ main() { # "production" - this means we tag with `latest` (default), allowing # a developer to install this version with `yarn add code-server@latest` if ! is_env_var_set "NPM_ENVIRONMENT"; then - echo "NPM_ENVIRONMENT is not set. Determining in script based on GITHUB environment variables." + echo "NPM_ENVIRONMENT is not set." + echo "Determining in script based on GITHUB environment variables." if [[ "$GITHUB_EVENT_NAME" == 'push' && "$GITHUB_REF" == 'refs/heads/main' ]]; then NPM_ENVIRONMENT="staging" @@ -73,7 +74,6 @@ main() { NPM_ENVIRONMENT="development" fi - echo "Using npm environment: $NPM_ENVIRONMENT" fi # NOTE@jsjoeio - this script assumes we have the artifact downloaded on disk @@ -96,9 +96,6 @@ main() { NPM_TAG="latest" else COMMIT_SHA="$GITHUB_SHA" - echo "Not a production environment" - echo "Found environment: $NPM_ENVIRONMENT" - echo "Manually bumping npm version..." if [[ "$NPM_ENVIRONMENT" == "staging" ]]; then NPM_VERSION="$VERSION-beta-$COMMIT_SHA" @@ -117,8 +114,10 @@ main() { NPM_TAG="$PR_NUMBER" fi - echo "using tag: $NPM_TAG" - echo "using package name: $PACKAGE_NAME" + echo "- tag: $NPM_TAG" + echo "- version: $NPM_VERSION" + echo "- package name: $PACKAGE_NAME" + echo "- npm environment: $NPM_ENVIRONMENT" # We modify the version in the package.json # to be the current version + the PR number + commit SHA @@ -140,13 +139,13 @@ main() { popd fi + # NOTE@jsjoeio # We need to make sure we haven't already published the version. - # This is because npm view won't exit with non-zero so we have - # to check the output. + # If we get error, continue with script because we want to publish + # If version is valid, we check if we're publishing the same one local hasVersion - hasVersion=$(npm view "code-server@$NPM_VERSION" version) - if [[ $hasVersion == "$NPM_VERSION" ]]; then - echo "$NPM_VERSION is already published" + if hasVersion=$(npm view "$PACKAGE_NAME@$NPM_VERSION" version 2> /dev/null) && [[ $hasVersion == "$NPM_VERSION" ]]; then + echo "$NPM_VERSION is already published under $PACKAGE_NAME" return fi