Current section
Files
Jump to
Current section
Files
priv/templates/release.eex
#!/bin/sh
# Deploy release from local build
set -e
# Environment vars
# DESTDIR, prefix for target files, optional
MIX_ENV="${MIX_ENV:-prod}"
RELEASE_VSN="${RELEASE_VSN:-<%= version %>}"
RELEASE_NAME="${RELEASE_NAME:-<%= app_name %>}"
# Config vars
DEPLOY_DIR="<%= deploy_dir %>"
DEPLOY_USER="${DEPLOY_USER:-<%= deploy_user %>}"
APP_GROUP="${APP_USER:-<%= app_group %>}"
CURRENT_LINK="${DESTDIR}${DEPLOY_DIR}/current"
<%= case release_system do %>
<% :mix -> %>
TAR_FILE="_build/${MIX_ENV}/${RELEASE_NAME}-${RELEASE_VSN}.tar.gz"
<% :distillery -> %>
TAR_FILE="_build/${MIX_ENV}/rel/${RELEASE_NAME}/releases/${RELEASE_VSN}/${RELEASE_NAME}.tar.gz"
<% end %>
TIMESTAMP=$(date +%Y%m%d%H%M%S)
RELEASE_DIR="${DESTDIR}${DEPLOY_DIR}/releases/${TIMESTAMP}"
echo "==> Deploying release $RELEASE_VSN to $RELEASE_DIR"
mkdir -p "$RELEASE_DIR"
echo "===> Extracting release from tar file $TAR_FILE"
tar -C "$RELEASE_DIR" -xf "$TAR_FILE"
chown -R ${DEPLOY_USER}:${APP_GROUP} "${RELEASE_DIR}"
echo "===> Setting current symlink $CURRENT_LINK"
if [[ -L "$CURRENT_LINK" ]]; then
rm "$CURRENT_LINK"
fi
ln -s "$RELEASE_DIR" "$CURRENT_LINK"
echo "===> Setting file permissions for release binary"
chmod 750 "${CURRENT_LINK}/bin/${RELEASE_NAME}"