Files
probably-rendering-one-more…/.gitea/workflows/preview.yml
T
codex-bot 5a5a2934da
Remote development preview source sync / sync-source (push) Successful in 14s
Probe development preview from the runner
2026-11-04 16:15:19 +08:00

45 lines
2.0 KiB
YAML

name: Remote development preview source sync
on:
push:
branches: ['**']
paths:
- 'apps/waterfall-wiki/**'
- 'packages/brand/**'
- 'pnpm-workspace.yaml'
- 'scripts/preview/**'
- '.gitea/workflows/preview.yml'
concurrency:
group: development-preview
cancel-in-progress: false
jobs:
sync-source:
# One preview slot follows one branch. Setup changes use an explicit refresh.
if: gitea.ref == format('refs/heads/{0}', vars.PREVIEW_BRANCH || 'dev')
runs-on: ces-control
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Initialize once, otherwise synchronize files only
env:
SOURCE_SHA: ${{ gitea.sha }}
SOURCE_BRANCH: ${{ gitea.ref_name }}
run: |
if [ ! -f /opt/prompt-preview/ready ]; then
bash scripts/preview/init.sh "$PWD" waterfall-wiki-tests:6654a1456bdcef77d83ca84373dc36188e15bd12
fi
bash scripts/preview/sync.sh "$PWD" "$SOURCE_SHA" "$SOURCE_BRANCH"
- name: Diagnose preview listener
run: |
root=/opt/prompt-preview
id=$(docker compose -p prompt-preview --env-file "$root/env" -f "$root/compose.yml" ps -q waterfall-wiki)
docker port "$id" 3000/tcp
docker inspect --format 'running={{.State.Running}} restarts={{.RestartCount}} oom={{.State.OOMKilled}}' "$id"
port=$(docker port "$id" 3000/tcp | awk -F: 'NR == 1 {print $NF}')
for route in /api/dev-preview /workspace; do
echo "Host request: $route"
curl --noproxy '*' --max-time 30 -sS -o /dev/null -w 'HTTP %{http_code}\n' "http://127.0.0.1:$port$route" || true
done
docker exec "$id" node -e 'fetch("http://127.0.0.1:3000/api/dev-preview", {signal: AbortSignal.timeout(15000)}).then(r => { console.log("Container HTTP", r.status); }).catch(e => { console.error(e.cause?.code || e.name); process.exitCode = 1; });'