You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
2.4 KiB

#!/bin/bash
# Note: this is managed by Ansible, as deploy-sh.j2
# Don't modify this file.
GITHUB_SHA=$1
UNLOCK=$2
WORKDIR=${TMPDIR-/tmp} # keep all random files here
export TPASS={{ surveytooldeploy.password }} # from surveytooldeploy.password
export TUSER=surveytooldeploy # fixed for now
dogit() {
rm -f ${WORKDIR}/git-list.txt
if [[ ${GITHUB_SHA} = "master" ]];
then
echo "changing 'master' to 'origin/master' to get the latest"
GITHUB_SHA=origin/master
fi
git fetch -p || exit 1
git clean -f -d || echo 'warning: err on cleanup'
# what are we deploying?
echo "cldr-trunk was at :" $(git rev-parse --short HEAD)
echo -n "you want to move to:"
git rev-parse --short "${GITHUB_SHA}" || exit 1 # fail on err
if [[ $(git rev-parse --short HEAD) = $(git rev-parse --short "${GITHUB_SHA}") ]];
then
echo "No checkout needed. Continuing with redeploy."
else
echo "Deploy will include these new items:"
echo "---"
(git log --oneline HEAD..${GITHUB_SHA} | tee ${WORKDIR}/git-list.txt) || exit 1
echo "---"
if [[ ! -s ${WORKDIR}/git-list.txt ]]; # if empty..
then
echo "Note, ${GITHUB_SHA} is not ahead of HEAD" $(git rev-parse --short HEAD)
echo "Checking for items that would be REVERTED if we proceed:"
echo "---"
git log --oneline ${GITHUB_SHA}..HEAD
echo "---"
if [[ "${UNLOCK}" = "--override" ]];
then
echo ".. continuing anyway! due to " "${UNLOCK}"
else
echo "STOP. Check the override box if you really want to do this"
exit 1
fi
fi
git checkout -f ${GITHUB_SHA}
echo "HEAD is now at" $(git rev-parse --short HEAD) "!"
fi
}
# Check git first, before undeploying. Want to exit early
(cd /var/lib/tomcat8/cldr/cldr-trunk/ && dogit ) || exit 1
# undeploy old ST
curl -u ${TUSER}:${TPASS} 'http://localhost:8080/manager/text/undeploy?path=/cldr-apps'
# reset last deploy status
rm -fv ${WORKDIR}/cldr-apps.war ${WORKDIR}/deploystatus
# copy cldr-apps.war from action runner to server
dd bs=1024000 status=progress of=${WORKDIR}/cldr-apps.war
# this counts the # of files to make sure it's not too short, but also verifies that unzip is OK
echo ; echo -n 'Unzip check, # of files in cldr-apps.war: '
(unzip -l ${WORKDIR}/cldr-apps.war | wc -l ) || exit 1
# Now, do the deployment!
curl -q -u ${TUSER}:${TPASS} 'http://localhost:8080/manager/text/deploy?path=/cldr-apps&tag=cldr-apps&update=true' -T ${WORKDIR}/cldr-apps.war | tee ${WORKDIR}/deploystatus