From 854b0035ec949a56e40980407e2b7db238ce84a0 Mon Sep 17 00:00:00 2001 From: rucki Date: Fri, 11 Sep 2026 17:50:38 +0200 Subject: [PATCH] Allow deploy branch selection --- .gitignore | 3 +++ deploy.sh | 27 +++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f863853..46d15f0 100644 --- a/.gitignore +++ b/.gitignore @@ -183,3 +183,6 @@ cython_debug/ # Local my2dos project API config .my2dos + +# Local deployment branch override +.deploy-branch diff --git a/deploy.sh b/deploy.sh index df31969..c19a73b 100755 --- a/deploy.sh +++ b/deploy.sh @@ -7,6 +7,8 @@ set -euo pipefail # # Optional: # DEPLOY_REMOTE=origin DEPLOY_BRANCH=main ./deploy.sh +# ./deploy.sh workspace-tenancy +# echo workspace-tenancy > .deploy-branch # SKIP_PIP=1 ./deploy.sh # SKIP_COLLECTSTATIC=1 ./deploy.sh # DEPLOY_RESTART_CMD="..." ./deploy.sh @@ -14,7 +16,19 @@ set -euo pipefail cd "$(dirname "$0")" REMOTE="${DEPLOY_REMOTE:-origin}" -BRANCH="${DEPLOY_BRANCH:-$(git branch --show-current 2>/dev/null || echo main)}" +BRANCH_SOURCE="current branch" +if [[ $# -gt 0 && -n "${1:-}" ]]; then + BRANCH="$1" + BRANCH_SOURCE="command line" +elif [[ -n "${DEPLOY_BRANCH:-}" ]]; then + BRANCH="$DEPLOY_BRANCH" + BRANCH_SOURCE="DEPLOY_BRANCH" +elif [[ -f ".deploy-branch" && -n "$(tr -d '[:space:]' < .deploy-branch)" ]]; then + BRANCH="$(tr -d '[:space:]' < .deploy-branch)" + BRANCH_SOURCE=".deploy-branch" +else + BRANCH="$(git branch --show-current 2>/dev/null || echo main)" +fi if [[ -x ".venv/bin/python" ]]; then PY=".venv/bin/python" @@ -28,9 +42,18 @@ else fi echo "==> Deploy $(pwd)" +echo "==> Branch: ${BRANCH} (${BRANCH_SOURCE})" echo "==> Python: $($PY --version)" -echo "==> Git Pull: ${REMOTE}/${BRANCH}" +echo "==> Git Update: ${REMOTE}/${BRANCH}" git fetch "$REMOTE" "$BRANCH" +CURRENT_BRANCH="$(git branch --show-current 2>/dev/null || true)" +if [[ "$CURRENT_BRANCH" != "$BRANCH" ]]; then + if git show-ref --verify --quiet "refs/heads/$BRANCH"; then + git checkout "$BRANCH" + else + git checkout -b "$BRANCH" --track "$REMOTE/$BRANCH" + fi +fi git pull --ff-only "$REMOTE" "$BRANCH" if [[ "${SKIP_PIP:-0}" != "1" ]]; then