#!/bin/bash # Pushes the locally built Yarn version to npm set -ex version=`./dist/bin/yarn --version` tarball="./artifacts/yarn-v$version.tar.gz" # Ensure Yarn tarball was built if [ ! -f "$tarball" ]; then echo 'Could not find Yarn tarball; please re-run "yarn build-dist".' exit 1 fi; # Check if this version is already published to npm. # Note: npm doesn't return a non-zero error code when "npm view" can't find a # package, so we need to improvise by checking that the value is what we expect. if [ "`npm view yarn@$version name`" = 'yarn' ]; then echo "$version is already available on npm" exit 0 fi; # Determine if this is an RC or a stable release release_type=`curl --fail https://release.yarnpkg.com/release_type/$version` npm_flags='' if [ "$release_type" = "rc" ]; then npm_flags='--tag rc' fi; eval "npx npm@4 publish '$tarball' --access public $npm_flags"