12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/usr/bin/env bash
- set -e
- # Make sure the release tag is provided.
- if (( "$#" != 1 ))
- then
- echo "Tag has to be provided."
- exit 1
- fi
- RELEASE_BRANCH="8.x"
- CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
- VERSION=$1
- # Make sure current branch and release branch match.
- if [[ "$RELEASE_BRANCH" != "$CURRENT_BRANCH" ]]
- then
- echo "Release branch ($RELEASE_BRANCH) does not match the current active branch ($CURRENT_BRANCH)."
- exit 1
- fi
- # Make sure the working directory is clear.
- if [[ ! -z "$(git status --porcelain)" ]]
- then
- echo "Your working directory is dirty. Did you forget to commit your changes?"
- exit 1
- fi
- # Make sure latest changes are fetched first.
- git fetch origin
- # Make sure that release branch is in sync with origin.
- if [[ $(git rev-parse HEAD) != $(git rev-parse origin/$RELEASE_BRANCH) ]]
- then
- echo "Your branch is out of date with its upstream. Did you forget to pull or push any changes before releasing?"
- exit 1
- fi
- # Always prepend with "v"
- if [[ $VERSION != v* ]]
- then
- VERSION="v$VERSION"
- fi
- # Tag Framework
- git tag $VERSION
- git push origin --tags
- # Tag Components
- for REMOTE in auth broadcasting bus cache collections config console container contracts cookie database encryption events filesystem hashing http log macroable mail notifications pagination pipeline queue redis routing session support testing translation validation view
- do
- echo ""
- echo ""
- echo "Releasing $REMOTE";
- TMP_DIR="/tmp/laravel-split"
- REMOTE_URL="git@github.com:illuminate/$REMOTE.git"
- rm -rf $TMP_DIR;
- mkdir $TMP_DIR;
- (
- cd $TMP_DIR;
- git clone $REMOTE_URL .
- git checkout "$RELEASE_BRANCH";
- git tag $VERSION
- git push origin --tags
- )
- done
|