ci: simplify stack path resolution in build-image workflow
This commit is contained in:
@@ -865,7 +865,9 @@ jobs:
|
|||||||
if [ -z "$SELECTED_IMAGE" ]; then
|
if [ -z "$SELECTED_IMAGE" ]; then
|
||||||
SELECTED_IMAGE="$DEFAULT_IMAGE"
|
SELECTED_IMAGE="$DEFAULT_IMAGE"
|
||||||
fi
|
fi
|
||||||
STACK_PATH="~/deployment/stacks/staging"
|
|
||||||
|
STACK_PATH_DISPLAY="~/deployment/stacks/staging"
|
||||||
|
STACK_PATH_DISPLAY="~/deployment/stacks/staging"
|
||||||
|
|
||||||
SELECTED_TAG="${SELECTED_IMAGE##*:}"
|
SELECTED_TAG="${SELECTED_IMAGE##*:}"
|
||||||
SELECTED_REPO="${SELECTED_IMAGE%:*}"
|
SELECTED_REPO="${SELECTED_IMAGE%:*}"
|
||||||
@@ -880,67 +882,31 @@ jobs:
|
|||||||
echo " Image: ${SELECTED_IMAGE}"
|
echo " Image: ${SELECTED_IMAGE}"
|
||||||
echo " Tag: ${SELECTED_TAG}"
|
echo " Tag: ${SELECTED_TAG}"
|
||||||
echo " Host: ${DEPLOYMENT_HOST}"
|
echo " Host: ${DEPLOYMENT_HOST}"
|
||||||
echo " Stack: ${STACK_PATH}"
|
echo " Stack: ${STACK_PATH_DISPLAY}"
|
||||||
|
|
||||||
FULL_IMAGE_ARG=$(printf '%q' "$SELECTED_IMAGE")
|
FULL_IMAGE_ARG=$(printf '%q' "$SELECTED_IMAGE")
|
||||||
FALLBACK_IMAGE_ARG=$(printf '%q' "$FALLBACK_IMAGE")
|
FALLBACK_IMAGE_ARG=$(printf '%q' "$FALLBACK_IMAGE")
|
||||||
IMAGE_NAME_ARG=$(printf '%q' "$IMAGE_NAME")
|
IMAGE_NAME_ARG=$(printf '%q' "$IMAGE_NAME")
|
||||||
STACK_PATH_ARG=$(printf '%q' "$STACK_PATH")
|
|
||||||
REGISTRY_ARG=$(printf '%q' "$REGISTRY_HOST")
|
REGISTRY_ARG=$(printf '%q' "$REGISTRY_HOST")
|
||||||
|
|
||||||
ssh -i ~/.ssh/production \
|
ssh -i ~/.ssh/production \
|
||||||
-o StrictHostKeyChecking=no \
|
-o StrictHostKeyChecking=no \
|
||||||
-o UserKnownHostsFile=/dev/null \
|
-o UserKnownHostsFile=/dev/null \
|
||||||
deploy@${DEPLOYMENT_HOST} "bash -s -- $FULL_IMAGE_ARG $FALLBACK_IMAGE_ARG $IMAGE_NAME_ARG $STACK_PATH_ARG $REGISTRY_ARG" <<'EOF'
|
deploy@${DEPLOYMENT_HOST} "bash -s -- $FULL_IMAGE_ARG $FALLBACK_IMAGE_ARG $IMAGE_NAME_ARG $REGISTRY_ARG" <<'EOF'
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
FULL_IMAGE="$1"
|
FULL_IMAGE="$1"
|
||||||
FALLBACK_IMAGE="$2"
|
FALLBACK_IMAGE="$2"
|
||||||
IMAGE_NAME="$3"
|
IMAGE_NAME="$3"
|
||||||
STACK_PATH="$4"
|
REGISTRY="$4"
|
||||||
REGISTRY="$5"
|
shift 4
|
||||||
shift 5
|
|
||||||
|
|
||||||
if [ "${STACK_PATH:0:1}" = "\\" ] && [ "${STACK_PATH:1:1}" = "~" ]; then
|
|
||||||
STACK_PATH="${STACK_PATH:1}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
CURRENT_USER="$(whoami)"
|
CURRENT_USER="$(whoami)"
|
||||||
USER_HOME="$(getent passwd "$CURRENT_USER" | cut -d: -f6 2>/dev/null)"
|
USER_HOME="$(getent passwd "$CURRENT_USER" | cut -d: -f6 2>/dev/null)"
|
||||||
[ -z "$USER_HOME" ] && USER_HOME="$HOME"
|
[ -z "$USER_HOME" ] && USER_HOME="$HOME"
|
||||||
[ -z "$USER_HOME" ] && USER_HOME="/home/$CURRENT_USER"
|
[ -z "$USER_HOME" ] && USER_HOME="/home/$CURRENT_USER"
|
||||||
|
|
||||||
RAW_PATH="$STACK_PATH"
|
STACK_TARGET="${USER_HOME}/deployment/stacks/staging"
|
||||||
[ -z "$RAW_PATH" ] && RAW_PATH="~/deployment/stacks/staging"
|
|
||||||
|
|
||||||
FIRST_CHAR="${RAW_PATH:0:1}"
|
|
||||||
case "$FIRST_CHAR" in
|
|
||||||
"~")
|
|
||||||
if [ "${RAW_PATH:0:2}" = "~/" ] || [ "$RAW_PATH" = "~" ]; then
|
|
||||||
STACK_TARGET="${USER_HOME}${RAW_PATH:1}"
|
|
||||||
else
|
|
||||||
TARGET_SPEC="${RAW_PATH%%/*}"
|
|
||||||
TARGET_USER="${TARGET_SPEC#~}"
|
|
||||||
TARGET_REMAINDER=""
|
|
||||||
if [ "$TARGET_SPEC" != "$RAW_PATH" ]; then
|
|
||||||
TARGET_REMAINDER="${RAW_PATH#*/}"
|
|
||||||
fi
|
|
||||||
TARGET_HOME="$(getent passwd "$TARGET_USER" | cut -d: -f6 2>/dev/null)"
|
|
||||||
[ -z "$TARGET_HOME" ] && TARGET_HOME="/home/$TARGET_USER"
|
|
||||||
if [ -n "$TARGET_REMAINDER" ] && [ "$TARGET_REMAINDER" != "$RAW_PATH" ]; then
|
|
||||||
STACK_TARGET="${TARGET_HOME}/${TARGET_REMAINDER}"
|
|
||||||
else
|
|
||||||
STACK_TARGET="$TARGET_HOME"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
"/")
|
|
||||||
STACK_TARGET="$RAW_PATH"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
STACK_TARGET="${USER_HOME}/${RAW_PATH}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# Ensure staging stack directory exists
|
# Ensure staging stack directory exists
|
||||||
mkdir -p "${STACK_TARGET}"
|
mkdir -p "${STACK_TARGET}"
|
||||||
|
|||||||
Reference in New Issue
Block a user