Commit 8c4325c6 authored by Matthieu Muffato's avatar Matthieu Muffato
Browse files

Added another deployment script that maintains branches.

This is more convenient for a developer who wants to fix guiHive
parent c739f7f4
#!/bin/bash
EHIVE_DEFAULT_URL='git://www.github.com/Ensembl/ensembl-hive'
EHIVE_URL=${EHIVE_URL:-$EHIVE_DEFAULT_URL}
GUIHIVE_URL='git://www.github.com/Ensembl/guiHive'
DEPLOY_LOCATION="$(dirname "$0")"
EHIVE_CLONE_LOCATION="${DEPLOY_LOCATION}/clones/ensembl-hive"
GUIHIVE_CLONE_LOCATION="${DEPLOY_LOCATION}/clones/guiHive"
GUIHIVE_VERSIONS_DIR="${DEPLOY_LOCATION}"/versions
EHIVE_VERSIONS_DIR="${DEPLOY_LOCATION}"/ensembl-hive
umask 0002
if [ -d "$GUIHIVE_VERSIONS_DIR" ] && [ -d "$EHIVE_VERSIONS_DIR" ]
then
echo "'$GUIHIVE_VERSIONS_DIR' and/or '$EHIVE_VERSIONS_DIR' already exist. Press ctrl+c to exit now, or enter otherwise/"
read
fi
mkdir -p "$GUIHIVE_VERSIONS_DIR"
mkdir -p "$EHIVE_VERSIONS_DIR"
# Any failure will cause the script to exit
trap "echo 'An error occurred. Deployment aborted'; exit 1" EXIT
set -e
reference_clone () {
# $git_url $target_dir
echo "get reference clone for $2 from $1"
if [ -d "$2" ]
then
GIT_DIR="$2" git fetch
else
git clone --mirror "$1" "$2"
fi
}
reference_clone "$EHIVE_URL" "$EHIVE_CLONE_LOCATION"
reference_clone "$GUIHIVE_URL" "$GUIHIVE_CLONE_LOCATION"
## "Safe" functions that can deal with pre-incarnations of the target
safe_clone () {
# safe_clone $branch $URL $dest
rm -rf "$3"
git clone -q "$2" "$3"
THIS_REMOTE=$(cd "$2"; git remote -v | head -n 1 | awk '{print $2}')
(cd "$3"; git checkout "$1"; git remote set-url origin "$THIS_REMOTE")
}
safe_symlink () {
# safe_symlink $source $target
rm -rf "$2"
ln -s "$1" "$2"
}
## Higher-level functions that wrap the safe functions
add_guihive_version () {
echo "checkout $1: guiHive $2 and eHive $3"
safe_clone "$2" "$GUIHIVE_CLONE_LOCATION" "${GUIHIVE_VERSIONS_DIR}/$1"
safe_clone "$3" "$EHIVE_CLONE_LOCATION" "${EHIVE_VERSIONS_DIR}/$1"
}
link_guihive_version () {
DEFAULT_TAG="sql_schema_$((${1}+1))_start^"
EHIVE_COMMIT=${3:-$DEFAULT_TAG}
echo "checkout $1: guiHive =$2 and eHive $EHIVE_COMMIT"
safe_symlink "$2" "${GUIHIVE_VERSIONS_DIR}/$1"
safe_clone "$EHIVE_COMMIT" "$EHIVE_CLONE_LOCATION" "${EHIVE_VERSIONS_DIR}/$1"
}
## List of versions
# 1. First we list all the eHive stable branches + master and map them to their database versions
# In case several branches are based on the same schema, we keep the latest.
# We also list specific guiHive versions that were made whilst developing eHive's master
# $db_version guihive_branch ehive_branch
add_guihive_version "56" "db_version/56" "version/2.0"
add_guihive_version "62" "db_version/62" "version/2.2"
add_guihive_version "73" "db_version/73" "version/2.3"
add_guihive_version "80" "db_version/80" "version/2.4"
add_guihive_version "84" "db_version/84" "sql_schema_85_start^"
add_guihive_version "88" "db_version/88" "master"
# 2. Then we list all the other eHive database versions and link them to a compatible guiHive version
# $db_version $aliased_db_version
# 57 to 61 are skipped
link_guihive_version "63" "62"
link_guihive_version "64" "73"
link_guihive_version "65" "73"
link_guihive_version "66" "73"
link_guihive_version "67" "73"
link_guihive_version "68" "73"
link_guihive_version "69" "73"
link_guihive_version "70" "73" "sql_schema_71_start^2" # because the merge of the python branch has swapped its two parents
link_guihive_version "71" "73"
link_guihive_version "72" "73"
# 73 is listed in the first section
link_guihive_version "74" "80"
link_guihive_version "75" "80" "44d78112401c21e2a704b8335dd4b247b85fe93a" # this is the last "safe" commit for guiHive 75, i.e. before Utils/Graph starts printing extra messages on stdout
link_guihive_version "76" "80"
link_guihive_version "77" "80"
link_guihive_version "78" "80"
link_guihive_version "79" "80"
# 80 is listed in the first section
link_guihive_version "81" "80"
link_guihive_version "82" "80"
link_guihive_version "83" "80"
link_guihive_version "83" "80"
# 84 is listed in the first section
link_guihive_version "85" "88"
link_guihive_version "86" "88"
link_guihive_version "87" "88"
trap - EXIT
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment