Files
codex-bot 53a4103308
creative workspace review checks / verify (pull_request) Failing after 17m42s
Sequence creative workspace releases and verify document discovery at its new entry
2026-10-30 16:57:48 +08:00

25 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -Eeuo pipefail
if [ "$(id -u)" -ne 0 ]; then exec sudo -n bash "$0" "$@"; fi
sha=${1:?release SHA required}
[[ "$sha" =~ ^[0-9a-f]{40}$ ]]
exec 9>/var/lock/prompt-studio.lock
flock -w 300 9
latest=$(git -c safe.directory="$PWD" ls-remote origin refs/heads/main | cut -f1)
if [ "$latest" != "$sha" ]; then
git -c safe.directory="$PWD" fetch origin main
git -c safe.directory="$PWD" diff --quiet "$sha" origin/main -- apps/studio scripts/deploy-studio.sh .gitea/workflows/waterfall-wiki.yml pnpm-workspace.yaml || exit 0
fi
mkdir -p /opt/prompt-studio
previous=$(cat /opt/prompt-studio/image 2>/dev/null || true)
write_compose(){ printf 'services:\n studio:\n image: %s\n restart: unless-stopped\n ports: ["127.0.0.1:18134:3000"]\n networks:\n waterfall-wiki:\n aliases: [prompt-studio]\nnetworks:\n waterfall-wiki:\n external: true\n name: prompt_default\n' "$1" > /opt/prompt-studio/compose.yml; }
write_compose "prompt-studio:$sha"
rollback(){ if [ -n "$previous" ]; then write_compose "$previous"; docker compose -p prompt-studio -f /opt/prompt-studio/compose.yml up -d; fi; }
trap rollback ERR
docker compose -p prompt-studio -f /opt/prompt-studio/compose.yml up -d
for attempt in {1..40}; do
if curl -fsS http://127.0.0.1:18134/studio/api/health >/dev/null; then printf '%s' "prompt-studio:$sha" > /opt/prompt-studio/image; exit 0; fi
sleep 2
done
false