diff options
Diffstat (limited to '')
-rwxr-xr-x | bin/make-release.sh | 65 | ||||
-rwxr-xr-x | bin/make-snapshot.sh | 24 |
2 files changed, 89 insertions, 0 deletions
diff --git a/bin/make-release.sh b/bin/make-release.sh new file mode 100755 index 0000000..4c603e7 --- /dev/null +++ b/bin/make-release.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +VERSION="$1" +NO_OPT="$2" + +if [[ -z $VERSION ]]; then + echo "USAGE: $0 <version> [--no-tag|--no-checkout]" + echo " e.g.: $0 0.1.0" + exit 1 +fi + +function fail { + local msg="$1" + echo "ERROR: $msg" + exit 1 +} + +TAG=$(git tag | grep -c "$VERSION") + +if [[ "$TAG" -ne "0" ]]; then + echo -n "Version $VERSION has already been tagged: " + git tag | grep "$VERSION" + exit 1 +fi + +if [ "$NO_OPT" != "--no-checkout" ]; then + BRANCH="stable/$VERSION" + git checkout -b "$BRANCH" || fail "Version branch $BRANCH already exists" +else + BRANCH=$(git rev-parse --abbrev-ref HEAD) +fi + +git rm -rf vendor +rm -rf vendor +rm -f composer.lock +composer install || fail "composer install failed" +find vendor/ -type f -name "*.php" \ + | grep -v '/examples/' \ + | grep -v '/example/' \ + | grep -v '/tests/' \ + | grep -v '/test/' \ + | xargs -L1 git add -f +find vendor/ -type f -name LICENSE | xargs -L1 git add -f +find vendor/ -type f -name '*.json' | xargs -L1 git add -f +find asset/ -type f | xargs -L1 git add -f +echo "v$VERSION" > VERSION +git add VERSION +git add composer.lock -f +git commit -m "Version v$VERSION" + +rm -rf vendor +git checkout vendor +composer validate --no-check-all --strict || fail "Composer validate failed" + +if [ -z "$NO_OPT" ]; then + git tag -a v$VERSION -m "Version v$VERSION" + echo "Finished, tagged v$VERSION" + echo "Now please run:" +else + echo "Finished, but not tagged yet" + echo "Now please run:" + echo "git tag -s v$VERSION -m \"Version v$VERSION\"" +fi + +echo "git push origin "$BRANCH":"$BRANCH" && git push --tags" diff --git a/bin/make-snapshot.sh b/bin/make-snapshot.sh new file mode 100755 index 0000000..c2c60a0 --- /dev/null +++ b/bin/make-snapshot.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -xe + +BRANCH="$1" + +if [ -z $BRANCH ]; then + echo "USAGE: $0 <branch>" + echo " e.g.: $0 snapshot/nightly" + exit 1 +fi + +LATEST_TAG=$(git for-each-ref refs/tags --sort=-taggerdate --format='%(refname)' --count=1 | awk -F/ '{print $3}') +NEXT_VERSION=$(echo "${LATEST_TAG:1}" | awk -F. -v OFS=. '{$3=0}; {++$2}; {print}') + +if [[ -n $(git branch | grep $BRANCH) ]]; then + git branch -D $BRANCH +fi + +git checkout -b $BRANCH +git merge --no-ff -m "Merge latest tag, to make it reachable for git-describe" $LATEST_TAG + +git commit -a -m "Require dev-master everywhere" +bin/make-release.sh "$NEXT_VERSION-dev" --no-checkout |