redux-observable/redux-observable

View on GitHub
scripts/publish.sh

Summary

Maintainability
Test Coverage
#!/bin/bash

if [[ -z $(git status -uno --porcelain) ]]; then
  VERSION="$(npm view redux-observable version)";
  read -p "Enter the new version number: (currently ${VERSION}) " BUMP;
  VERSION="$(npm version $BUMP --no-git-tag-version)";
  conventional-changelog -p angular -i CHANGELOG.md -s;
  vi CHANGELOG.md;
  git diff package.json CHANGELOG.md;
  read -p "Look good? (y/n) " CONDITION;

  if [ "$CONDITION" == "y" ]; then
    git add package.json package-lock.json CHANGELOG.md;
    git commit -m "chore(publish): ${VERSION}";
    git tag "${VERSION}" -m "See https://github.com/redux-observable/redux-observable/blob/master/CHANGELOG.md";
    git push origin master;
    git push origin "${VERSION}";
    read -p "Which dist-tag? (latest) " DIST_TAG;
    DIST_TAG=${DIST_TAG:-latest}

    if [[ "$BUMP" =~ - ]] && [ "$DIST_TAG" == "latest" ]; then
      read -p "Using dist-tag 'latest' for a pre-release. ARE YOU SURE? (y/n) " CONDITION;

      if [ "$CONDITION" == "n" ] || [ "$CONDITION" == "" ]; then
        echo "Cancelled publish by your request!";
        exit 1;
      fi
    fi

    read -p "Enter 2FA auth token: " AUTH;
    npm publish --tag $DIST_TAG --otp $AUTH;
  else
    git checkout -f package.json CHANGELOG.md;
    echo "Cancelled publish by your request!";
    exit 1;
  fi

else
  echo "You cannot publish with uncommited changes";
  exit 1;
fi