From 94a1914e9e12b07da5d3806a796ecf5c2b980569 Mon Sep 17 00:00:00 2001 From: hippasus Date: Sat, 25 Apr 2026 18:51:18 +0800 Subject: [PATCH] readable scripts --- blue-green-deploy/abort/action.yml | 14 +++++++++++++- blue-green-deploy/finalize/action.yml | 14 +++++++++++++- blue-green-deploy/stage/action.yml | 22 +++++++++++++++++++++- blue-green-deploy/switch/action.yml | 17 ++++++++++++++++- 4 files changed, 63 insertions(+), 4 deletions(-) diff --git a/blue-green-deploy/abort/action.yml b/blue-green-deploy/abort/action.yml index 3c7f01e..4d5d4c4 100644 --- a/blue-green-deploy/abort/action.yml +++ b/blue-green-deploy/abort/action.yml @@ -54,4 +54,16 @@ runs: ) ssh "${SSH_OPTS[@]}" "$DEPLOY_USER@$DEPLOY_HOST" \ - "APP_KEY=$(printf '%q' "$APP_KEY") AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") bash -se -c 'cd \"\$AUTO_DEPLOY_PATH\"; git checkout \"\$AUTO_DEPLOY_BRANCH\"; git pull --ff-only; git submodule sync --recursive; git submodule update --init --recursive; echo \"[remote] auto-deploy repo updated\"; ./common/deploy.sh abort-pending \"\$APP_KEY\"; echo \"[remote] \$APP_KEY pending deployment aborted\"'" + "APP_KEY=$(printf '%q' "$APP_KEY") \ + AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") \ + AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") \ + bash -se" << 'EOF' + cd "$AUTO_DEPLOY_PATH" + git checkout "$AUTO_DEPLOY_BRANCH" + git pull --ff-only + git submodule sync --recursive + git submodule update --init --recursive + echo "[remote] auto-deploy repo updated" + ./common/deploy.sh abort-pending "$APP_KEY" + echo "[remote] $APP_KEY pending deployment aborted" +EOF diff --git a/blue-green-deploy/finalize/action.yml b/blue-green-deploy/finalize/action.yml index f99e98d..216c147 100644 --- a/blue-green-deploy/finalize/action.yml +++ b/blue-green-deploy/finalize/action.yml @@ -54,4 +54,16 @@ runs: ) ssh "${SSH_OPTS[@]}" "$DEPLOY_USER@$DEPLOY_HOST" \ - "APP_KEY=$(printf '%q' "$APP_KEY") AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") bash -se -c 'cd \"\$AUTO_DEPLOY_PATH\"; git checkout \"\$AUTO_DEPLOY_BRANCH\"; git pull --ff-only; git submodule sync --recursive; git submodule update --init --recursive; echo \"[remote] auto-deploy repo updated\"; ./common/deploy.sh finalize \"\$APP_KEY\"; echo \"[remote] \$APP_KEY deployment finalized\"'" + "APP_KEY=$(printf '%q' "$APP_KEY") \ + AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") \ + AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") \ + bash -se" << 'EOF' + cd "$AUTO_DEPLOY_PATH" + git checkout "$AUTO_DEPLOY_BRANCH" + git pull --ff-only + git submodule sync --recursive + git submodule update --init --recursive + echo "[remote] auto-deploy repo updated" + ./common/deploy.sh finalize "$APP_KEY" + echo "[remote] $APP_KEY deployment finalized" +EOF diff --git a/blue-green-deploy/stage/action.yml b/blue-green-deploy/stage/action.yml index 30b1a2d..30079c3 100644 --- a/blue-green-deploy/stage/action.yml +++ b/blue-green-deploy/stage/action.yml @@ -71,4 +71,24 @@ runs: ) ssh "${SSH_OPTS[@]}" "$DEPLOY_USER@$DEPLOY_HOST" \ - "APP_KEY=$(printf '%q' "$APP_KEY") IMAGE_TAG=$(printf '%q' "$IMAGE_TAG") HARBOR_USER=$(printf '%q' "$HARBOR_USER") HARBOR_SECRET=$(printf '%q' "$HARBOR_SECRET") HARBOR_HOST=$(printf '%q' "$HARBOR_HOST") AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") bash -se -c 'printf \"%s\" \"\$HARBOR_SECRET\" | sudo /usr/bin/docker login \"\$HARBOR_HOST\" -u \"\$HARBOR_USER\" --password-stdin; echo \"[remote] Harbor login succeeded\"; cd \"\$AUTO_DEPLOY_PATH\"; git checkout \"\$AUTO_DEPLOY_BRANCH\"; git pull --ff-only; git submodule sync --recursive; git submodule update --init --recursive; echo \"[remote] auto-deploy repo updated\"; ./common/deploy.sh deploy \"\$APP_KEY\" \"\$IMAGE_TAG\"; echo \"[remote] \$APP_KEY deploy staged with IMAGE_TAG=\$IMAGE_TAG\"; echo \"[remote] current deployment status:\"; ./common/deploy.sh status \"\$APP_KEY\" --format env'" + "APP_KEY=$(printf '%q' "$APP_KEY") \ + IMAGE_TAG=$(printf '%q' "$IMAGE_TAG") \ + HARBOR_USER=$(printf '%q' "$HARBOR_USER") \ + HARBOR_SECRET=$(printf '%q' "$HARBOR_SECRET") \ + HARBOR_HOST=$(printf '%q' "$HARBOR_HOST") \ + AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") \ + AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") \ + bash -se" << 'EOF' + printf "%s" "$HARBOR_SECRET" | sudo /usr/bin/docker login "$HARBOR_HOST" -u "$HARBOR_USER" --password-stdin + echo "[remote] Harbor login succeeded" + cd "$AUTO_DEPLOY_PATH" + git checkout "$AUTO_DEPLOY_BRANCH" + git pull --ff-only + git submodule sync --recursive + git submodule update --init --recursive + echo "[remote] auto-deploy repo updated" + ./common/deploy.sh deploy "$APP_KEY" "$IMAGE_TAG" + echo "[remote] $APP_KEY deploy staged with IMAGE_TAG=$IMAGE_TAG" + echo "[remote] current deployment status:" + ./common/deploy.sh status "$APP_KEY" --format env +EOF diff --git a/blue-green-deploy/switch/action.yml b/blue-green-deploy/switch/action.yml index 13471fd..05ab1e4 100644 --- a/blue-green-deploy/switch/action.yml +++ b/blue-green-deploy/switch/action.yml @@ -66,4 +66,19 @@ runs: ) ssh "${SSH_OPTS[@]}" "$DEPLOY_USER@$DEPLOY_HOST" \ - "APP_KEY=$(printf '%q' "$APP_KEY") APP_UPSTREAM_HOST=$(printf '%q' "$APP_UPSTREAM_HOST") PENDING_PORT=$(printf '%q' "$PENDING_PORT") PENDING_COLOR=$(printf '%q' "$PENDING_COLOR") AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") bash -se -c 'cd \"\$AUTO_DEPLOY_PATH\"; git checkout \"\$AUTO_DEPLOY_BRANCH\"; git pull --ff-only; git submodule sync --recursive; git submodule update --init --recursive; echo \"[remote] auto-deploy repo updated on nginx server\"; ./common/nginx/manage-nginx.sh switch \"\$APP_KEY\" \"\$APP_UPSTREAM_HOST\" \"\$PENDING_PORT\"; echo \"[remote] nginx switched \$APP_KEY to \$APP_UPSTREAM_HOST:\$PENDING_PORT (\$PENDING_COLOR)\"'" + "APP_KEY=$(printf '%q' "$APP_KEY") \ + APP_UPSTREAM_HOST=$(printf '%q' "$APP_UPSTREAM_HOST") \ + PENDING_PORT=$(printf '%q' "$PENDING_PORT") \ + PENDING_COLOR=$(printf '%q' "$PENDING_COLOR") \ + AUTO_DEPLOY_PATH=$(printf '%q' "$AUTO_DEPLOY_PATH") \ + AUTO_DEPLOY_BRANCH=$(printf '%q' "$AUTO_DEPLOY_BRANCH") \ + bash -se" << 'EOF' + cd "$AUTO_DEPLOY_PATH" + git checkout "$AUTO_DEPLOY_BRANCH" + git pull --ff-only + git submodule sync --recursive + git submodule update --init --recursive + echo "[remote] auto-deploy repo updated on nginx server" + ./common/nginx/manage-nginx.sh switch "$APP_KEY" "$APP_UPSTREAM_HOST" "$PENDING_PORT" + echo "[remote] nginx switched $APP_KEY to $APP_UPSTREAM_HOST:$PENDING_PORT ($PENDING_COLOR)" +EOF