File: build/release.sh

Recommend this page to a friend!
  Classes of Slawomir Kaleta  >  Dframe Framework  >  build/release.sh  >  Download  
File: build/release.sh
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Dframe Framework
Modular MVC based PHP Web framework
Author: By
Last change:
Date: 10 days ago
Size: 1,576 bytes
 

 

Contents

Class file image Download
#!/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="v4.1"
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 asset config console cron loader router session token view
do
    echo ""
    echo ""
    echo "Releasing $REMOTE";

    TMP_DIR="/home/kajtek/tmp/dframe-split"
    REMOTE_URL="git@github.com:dframe/$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

For more information send a message to info at phpclasses dot org.