wordpress-activitypub/bin/deploy.sh
2018-11-06 11:50:42 +01:00

84 lines
1.9 KiB
Bash

#!/usr/bin/env bash
set -e
if [[ "false" != "$TRAVIS_PULL_REQUEST" ]]; then
echo "Not deploying pull requests."
exit
fi
if [[ ! $WP_PLUGIN_DEPLOY ]]; then
echo "Not deploying."
exit
fi
if [[ ! $SVN_REPO ]]; then
echo "SVN repo is not specified."
exit
fi
# Untrailing slash of SVN_REPO path
SVN_REPO=`echo $SVN_REPO | sed -e "s/\/$//"`
# Git repository
GH_REF=https://github.com/${TRAVIS_REPO_SLUG}.git
echo "Starting deploy..."
mkdir build
cd build
BASE_DIR=$(pwd)
echo "Checking out trunk from $SVN_REPO ..."
svn co -q $SVN_REPO/trunk
echo "Getting clone from $GH_REF to $SVN_REPO ..."
git clone -q $GH_REF ./git
cd ./git
if [ -e "bin/build.sh" ]; then
echo "Starting bin/build.sh."
bash bin/build.sh
fi
cd $BASE_DIR
echo "Syncing git repository to svn"
rsync -a --exclude=".svn" --checksum --delete ./git/ ./trunk/
rm -fr ./git
cd ./trunk
if [ -e ".distignore" ]; then
echo "svn propset form .distignore"
svn propset -q -R svn:ignore -F .distignore .
else
if [ -e ".svnignore" ]; then
echo "svn propset"
svn propset -q -R svn:ignore -F .svnignore .
fi
fi
echo "Run svn del"
svn st | grep '^!' | sed -e 's/\![ ]*/svn del -q /g' | sh
echo "Run svn add"
svn st | grep '^?' | sed -e 's/\?[ ]*/svn add -q /g' | sh
echo "Release tag: $TRAVIS_TAG as user: $SVN_USER"
# If tag number and credentials are provided, commit to trunk.
if [[ $TRAVIS_TAG && $SVN_USER && $SVN_PASS ]]; then
if [[ ! -d tags/$TRAVIS_TAG ]]; then
echo "Commit to $SVN_REPO."
svn commit -m "commit version $TRAVIS_TAG" --username $SVN_USER --password $SVN_PASS --non-interactive 2>/dev/null
echo "Take snapshot of $TRAVIS_TAG"
svn copy $SVN_REPO/trunk $SVN_REPO/tags/$TRAVIS_TAG -m "Take snapshot of $TRAVIS_TAG" --username $SVN_USER --password $SVN_PASS --non-interactive 2>/dev/null
else
echo "tags/$TRAVIS_TAG already exists."
fi
else
echo "Nothing to commit and check \`svn st\`."
svn st
fi