Fix npm .npmrc: fold NPM_HOST into the same shell as its use
Drone runs each command list item in a separate shell, so a standalone NPM_HOST= line is empty when the next item references it, writing //:_auth= (wrong host) and causing a registry 401. Compute NPM_HOST in the same | block that writes .npmrc.
This commit is contained in:
@@ -22,18 +22,17 @@ steps:
|
|||||||
from_secret: NPM_PASSWORD
|
from_secret: NPM_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache curl
|
- apk add --no-cache curl
|
||||||
- PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
||||||
- VERSION=$(node -p "require('./package.json').version")
|
|
||||||
- |
|
- |
|
||||||
|
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
||||||
|
VERSION=$(node -p "require('./package.json').version")
|
||||||
if [ "$DRONE_TAG" != "$VERSION" ]; then
|
if [ "$DRONE_TAG" != "$VERSION" ]; then
|
||||||
echo "Tag '$DRONE_TAG' does not match package.json version '$VERSION'; refusing to publish."
|
echo "Tag '$DRONE_TAG' does not match package.json version '$VERSION'; refusing to publish."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
||||||
- echo "Checking if $PACKAGE_NAME@$VERSION exists on $NPM_REPO_URL ..."
|
echo "Checking if $PACKAGE_NAME@$VERSION exists on $NPM_REPO_URL ..."
|
||||||
- |
|
|
||||||
if npm view "$PACKAGE_NAME@$VERSION" version --userconfig /tmp/.npmrc >/dev/null 2>&1; then
|
if npm view "$PACKAGE_NAME@$VERSION" version --userconfig /tmp/.npmrc >/dev/null 2>&1; then
|
||||||
echo "$PACKAGE_NAME@$VERSION already exists; skipping build."
|
echo "$PACKAGE_NAME@$VERSION already exists; skipping build."
|
||||||
exit 78
|
exit 78
|
||||||
@@ -56,9 +55,9 @@ steps:
|
|||||||
echo "NPM_REPO_URL / NPM_USERNAME / NPM_PASSWORD are not set" >&2
|
echo "NPM_REPO_URL / NPM_USERNAME / NPM_PASSWORD are not set" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "registry=$NPM_REPO_URL" > .npmrc
|
echo "registry=$NPM_REPO_URL" > .npmrc
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
||||||
- npm install
|
- npm install
|
||||||
- echo "Running quality gate..."
|
- echo "Running quality gate..."
|
||||||
- npm run quality-gate
|
- npm run quality-gate
|
||||||
@@ -81,9 +80,10 @@ steps:
|
|||||||
NPM_PASSWORD:
|
NPM_PASSWORD:
|
||||||
from_secret: NPM_PASSWORD
|
from_secret: NPM_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
- |
|
||||||
- echo "registry=$NPM_REPO_URL" > .npmrc
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
echo "registry=$NPM_REPO_URL" > .npmrc
|
||||||
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
||||||
- echo "Publishing to private npm at $NPM_REPO_URL ..."
|
- echo "Publishing to private npm at $NPM_REPO_URL ..."
|
||||||
- npm publish --access restricted
|
- npm publish --access restricted
|
||||||
|
|
||||||
@@ -120,9 +120,10 @@ steps:
|
|||||||
from_secret: NPM_PASSWORD
|
from_secret: NPM_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache git
|
- apk add --no-cache git
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
- |
|
||||||
- echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
||||||
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
||||||
- |
|
- |
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|||||||
@@ -22,18 +22,17 @@ steps:
|
|||||||
from_secret: NPM_PASSWORD
|
from_secret: NPM_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache curl
|
- apk add --no-cache curl
|
||||||
- PACKAGE_NAME=$(node -p "require('./package.json').name")
|
|
||||||
- VERSION=$(node -p "require('./package.json').version")
|
|
||||||
- |
|
- |
|
||||||
|
PACKAGE_NAME=$(node -p "require('./package.json').name")
|
||||||
|
VERSION=$(node -p "require('./package.json').version")
|
||||||
if [ "$DRONE_TAG" != "$VERSION" ]; then
|
if [ "$DRONE_TAG" != "$VERSION" ]; then
|
||||||
echo "Tag '$DRONE_TAG' does not match package.json version '$VERSION'; refusing to publish."
|
echo "Tag '$DRONE_TAG' does not match package.json version '$VERSION'; refusing to publish."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
||||||
- echo "Checking if $PACKAGE_NAME@$VERSION exists on $NPM_REPO_URL ..."
|
echo "Checking if $PACKAGE_NAME@$VERSION exists on $NPM_REPO_URL ..."
|
||||||
- |
|
|
||||||
if npm view "$PACKAGE_NAME@$VERSION" version --userconfig /tmp/.npmrc >/dev/null 2>&1; then
|
if npm view "$PACKAGE_NAME@$VERSION" version --userconfig /tmp/.npmrc >/dev/null 2>&1; then
|
||||||
echo "$PACKAGE_NAME@$VERSION already exists; skipping build."
|
echo "$PACKAGE_NAME@$VERSION already exists; skipping build."
|
||||||
exit 78
|
exit 78
|
||||||
@@ -56,9 +55,9 @@ steps:
|
|||||||
echo "NPM_REPO_URL / NPM_USERNAME / NPM_PASSWORD are not set" >&2
|
echo "NPM_REPO_URL / NPM_USERNAME / NPM_PASSWORD are not set" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "registry=$NPM_REPO_URL" > .npmrc
|
echo "registry=$NPM_REPO_URL" > .npmrc
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
||||||
- npm install
|
- npm install
|
||||||
- echo "Running quality gate..."
|
- echo "Running quality gate..."
|
||||||
- npm run quality-gate
|
- npm run quality-gate
|
||||||
@@ -81,9 +80,10 @@ steps:
|
|||||||
NPM_PASSWORD:
|
NPM_PASSWORD:
|
||||||
from_secret: NPM_PASSWORD
|
from_secret: NPM_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
- |
|
||||||
- echo "registry=$NPM_REPO_URL" > .npmrc
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
echo "registry=$NPM_REPO_URL" > .npmrc
|
||||||
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> .npmrc
|
||||||
- echo "Publishing to private npm at $NPM_REPO_URL ..."
|
- echo "Publishing to private npm at $NPM_REPO_URL ..."
|
||||||
- npm publish --access restricted
|
- npm publish --access restricted
|
||||||
|
|
||||||
@@ -120,9 +120,10 @@ steps:
|
|||||||
from_secret: NPM_PASSWORD
|
from_secret: NPM_PASSWORD
|
||||||
commands:
|
commands:
|
||||||
- apk add --no-cache git
|
- apk add --no-cache git
|
||||||
- NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
- |
|
||||||
- echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
NPM_HOST=$(echo "$NPM_REPO_URL" | sed -E 's|^[a-z]+://||; s|/*$||')
|
||||||
- echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
echo "registry=$NPM_REPO_URL" > /tmp/.npmrc
|
||||||
|
echo "//$NPM_HOST/:_auth=$(echo -n "$NPM_USERNAME:$NPM_PASSWORD" | base64 | tr -d '\n')" >> /tmp/.npmrc
|
||||||
- |
|
- |
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user