Files
probably-rendering-one-more…/scripts/integration.sh
T
codex-bot 2a5cff3bec
PROMPT Docker CI and deployment / verify-and-deploy (push) Failing after 11m9s
Expose screenshot worker progress and allow complete series rendering in CI
2026-10-23 12:26:58 +08:00

21 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -Eeuo pipefail
: "${PROMPT_IMAGE:?Build the runtime image first}"
: "${PROMPT_TEST_IMAGE:?Build the integration image first}"
export COMPOSE_PROJECT_NAME="prompt-ci-${GITEA_RUN_ID:-$$}"
export PG_PORT=0 S3_PORT=0 WEB_PORT=0 WEB_BIND_ADDRESS=127.0.0.1
TEST_ENV=$(mktemp)
chmod 0600 "$TEST_ENV"
compose(){ docker compose -p "$COMPOSE_PROJECT_NAME" --env-file "$TEST_ENV" -f compose.yml "$@"; }
cleanup(){ code=$?; if [ "$code" -ne 0 ]; then compose logs --tail 160 web worker; fi; compose down -v --remove-orphans; rm -f "$TEST_ENV"; }
trap cleanup EXIT
# Random credentials exist only for this disposable stack; no host Node required.
docker run --rm --entrypoint node "$PROMPT_IMAGE" -e "const c=require('crypto');const hex=()=>c.randomBytes(24).toString('hex');console.log('POSTGRES_PASSWORD='+hex()+'\nS3_ACCESS_KEY='+hex()+'\nS3_SECRET_KEY='+hex())" > "$TEST_ENV"
compose up -d --no-build --wait --wait-timeout 120 postgres objects
compose run --rm --no-deps migrate
compose up -d --no-build --wait --wait-timeout 150 web worker
# The test runner calls the actual non-root production web/worker containers.
compose run --rm --no-deps tests
compose exec -T web node container-health.mjs
compose exec -T worker sh -c 'test "$(id -u)" -ne 0 && ffmpeg -version >/dev/null'