diff --git a/.gitea/workflows/build-image.yml b/.gitea/workflows/build-image.yml index 75b64f14..1be3a3b6 100644 --- a/.gitea/workflows/build-image.yml +++ b/.gitea/workflows/build-image.yml @@ -876,7 +876,6 @@ jobs: fi STACK_PATH="~/deployment/stacks/staging" - STACK_PATH="${STACK_PATH/#\~/$HOME}" echo "🚀 Starting staging deployment..." echo " Image: ${SELECTED_IMAGE}" @@ -902,12 +901,26 @@ jobs: STACK_PATH="$4" REGISTRY="$5" shift 5 - - STACK_TARGET="${STACK_PATH:-~/deployment/stacks/staging}" + + CURRENT_USER="$(whoami)" + USER_HOME="$(getent passwd "$CURRENT_USER" | cut -d: -f6 2>/dev/null)" + if [ -z "$USER_HOME" ]; then + USER_HOME="$HOME" + fi + if [ -z "$USER_HOME" ]; then + USER_HOME="/home/$CURRENT_USER" + fi + + STACK_TARGET="$STACK_PATH" + if [ -z "$STACK_TARGET" ]; then + STACK_TARGET="$USER_HOME/deployment/stacks/staging" + fi case "$STACK_TARGET" in - ~*) STACK_TARGET="${HOME}${STACK_TARGET#~}" ;; + ~*) STACK_TARGET="${USER_HOME}${STACK_TARGET#~}" ;; + /*) ;; + *) STACK_TARGET="${USER_HOME}/${STACK_TARGET}" ;; esac - + # Ensure staging stack directory exists mkdir -p "${STACK_TARGET}" cd "${STACK_TARGET}"