1.8 KiB
Google Cloud Run example
End-to-end deployment + smoke for @hyperframes/gcp-cloud-run — the Cloud Run + Cloud Workflows adapter for HyperFrames distributed rendering.
Layout
scripts/smoke.sh Real-GCP smoke: build → deploy → render → PSNR → destroy
sample-events/ Example request bodies for the Cloud Run handler
(plan.json, render-chunk.json, assemble.json)
The Terraform module and the Cloud Workflows definition that the smoke deploys live with the package, at packages/gcp-cloud-run/terraform/ (including workflow.yaml).
Prerequisites
gcloudauthenticated, with a project that has billing enabledterraform(≥ 1.5),docker,ffmpeg,jqon PATH
Run the smoke
# Renders the mp4-h264-sdr fixture through the workflow and PSNR-compares it
# against the in-process baseline, then tears the stack down.
./scripts/smoke.sh --project YOUR_GCP_PROJECT --region us-central1
# Keep the stack up to poke at it:
./scripts/smoke.sh --project YOUR_GCP_PROJECT --keep-stack
# Render at several chunk sizes to see the fan-out scaling:
./scripts/smoke.sh --project YOUR_GCP_PROJECT --chunk-sizes 30,15,10
Outputs land in scripts/gcp-smoke-artifacts/: results.json
(chunkSize × wallClockMs × psnrAvgDb), the rendered MP4s, and each
workflow execution's describe output.
Test the handler locally
The sample events exercise the same body shape Cloud Workflows sends. With the
container running locally (PORT=8080) and credentials that can reach a GCS
bucket, you can drive a single action:
curl -sX POST localhost:8080/ \
-H 'content-type: application/json' \
--data @sample-events/plan.json | jq .
Replace the PROJECT placeholder bucket names and REPLACE_WITH_PLAN_HASH
with real values from a prior plan response.