grafana/scripts/publish-npm-packages.sh
Jack Westbrook 5d4bf19efb
Fix: Canary NPM publishing (#66734)
fix(npm-publishing): strip protocol from registry so npm can auth correctly
2023-04-18 12:00:05 +02:00

47 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Set default values for dist-tag and registry for local development
# to prevent running this script and accidentally publishing to npm
dist_tag="canary"
registry="http://localhost:4873"
# shellcheck source=./scripts/helpers/exit-if-fail.sh
source "$(dirname "$0")/helpers/exit-if-fail.sh"
if [ -z "$NPM_TOKEN" ]; then
echo "The NPM_TOKEN environment variable does not exist."
exit 1
fi
# Parse command line arguments
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
--dist-tag)
dist_tag="$2"
shift # past argument
shift # past value
;;
--registry)
registry="$2"
shift # past argument
shift # past value
;;
*) # unknown option
echo "Unknown option: $1"
exit 1
;;
esac
done
echo "Starting to release $dist_tag version"
registry_without_protocol=${registry#*:}
echo "$registry_without_protocol/:_authToken=${NPM_TOKEN}" >> ~/.npmrc
# Loop over .tar files in directory and publish them to npm registry
for file in ./npm-artifacts/*.tgz; do
npm publish "$file" --tag "$dist_tag" --registry "$registry"
done