Unify content under ID-based note dialogs with lightweight previews and Studio proxy
This commit is contained in:
@@ -6,16 +6,19 @@ sha=${1:?release SHA required}
|
||||
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)
|
||||
[ "$latest" = "$sha" ] || exit 0
|
||||
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/studio.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: ["18134:3000"]\n' "$1" > /opt/prompt-studio/compose.yml; }
|
||||
write_compose(){ printf 'services:\n studio:\n image: %s\n restart: unless-stopped\n ports: ["18134:3000"]\n networks:\n wiki:\n aliases: [prompt-studio]\nnetworks:\n 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/api/index >/dev/null; then printf '%s' "prompt-studio:$sha" > /opt/prompt-studio/image; exit 0; fi
|
||||
if curl -fsS http://127.0.0.1:18134/studio/api/index >/dev/null; then printf '%s' "prompt-studio:$sha" > /opt/prompt-studio/image; exit 0; fi
|
||||
sleep 2
|
||||
done
|
||||
false
|
||||
|
||||
Reference in New Issue
Block a user