Apply the workspace schema to the dev preview
Unified application CI and deployment / static-checks (push) Successful in 6s
Remote development preview source sync / sync-source (push) Successful in 9s
Unified application CI and deployment / verify-and-release (push) Has been skipped

This commit is contained in:
2026-11-04 17:28:18 +08:00
parent b6718f9981
commit 7e104cd660
+28
View File
@@ -21,6 +21,34 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Apply additive Workspace migration to dev preview
if: gitea.ref == 'refs/heads/dev'
run: |
set -Eeuo pipefail
root=/opt/prompt-preview
test -f "$root/ready"
exec 8>/var/lock/prompt-preview-sync.lock
flock -w 30 8
id=$(docker ps -q --filter label=com.docker.compose.project=prompt-preview --filter label=com.docker.compose.service=postgres)
[[ "$id" =~ ^[a-f0-9]{12}$ ]]
sql=apps/waterfall-wiki/db/018_workspaces.sql
previous=$(cat "$root/fingerprint")
scratch=$(mktemp -d)
trap 'rm -rf "$scratch"' EXIT
mkdir -p "$scratch/apps/waterfall-wiki/db" "$scratch/packages/brand"
cp pnpm-workspace.yaml "$scratch/"
cp apps/waterfall-wiki/{pnpm-lock.yaml,next.config.ts,tsconfig.json,postcss.config.mjs,package.json} "$scratch/apps/waterfall-wiki/"
cp packages/brand/package.json "$scratch/packages/brand/"
cp apps/waterfall-wiki/db/*.sql "$scratch/apps/waterfall-wiki/db/"
rm "$scratch/$sql"
candidate=$(node scripts/preview/fingerprint.mjs "$PWD")
if [[ "$candidate" == "$previous" ]]; then exit 0; fi
test "$(node scripts/preview/fingerprint.mjs "$scratch")" = "$previous"
applied=$(docker exec "$id" psql -XAt -v ON_ERROR_STOP=1 -U prompt -d prompt -c "SELECT 1 FROM schema_migrations WHERE version='018_workspaces'")
if [[ "$applied" != 1 ]]; then
docker exec -i "$id" psql -X -v ON_ERROR_STOP=1 -U prompt -d prompt < "$sql"
fi
printf '%s\n' "$candidate" > "$root/fingerprint"
- name: Initialize once, otherwise synchronize files only
env:
SOURCE_SHA: ${{ gitea.sha }}