Monitor websites uptime using Cloudflare Workers
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839#!/usr/bin/env bashset -euo pipefailroot="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/../.." && pwd)"fail() { printf 'FAIL: %s\n' "$1" >&2; exit 1; }git() { case "$*" in *symbolic-ref*) printf '%s\n' "${DEPLOY_TEST_BRANCH:-main}" ;; *) command git "$@" ;; esac}pnpm() { printf '%s\n' "pnpm $*" >> "${DEPLOY_TEST_LOG:-/dev/null}"; }export -f git pnpmlog="$(mktemp)"fixture_root="$(mktemp -d)"trap 'rm -f "$log"; rm -rf "$fixture_root"' EXITexport DEPLOY_TEST_LOG="$log""$root/scripts/deploy-hosted-workers.sh" --environment staging --capacity 3 --dry-run >/dev/null 2>&1 || fail 'staging deployment dry-run failed'if grep -q 'd1 execute\|d1 create\|d1 migrations' "$log"; then fail 'dry-run performed a remote D1 write'; fi: > "$log"if "$root/scripts/deploy-hosted-workers.sh" --environment production --capacity 0 >/dev/null 2>&1; then fail 'provisioning validation failure was ignored'; fi[[ ! -s "$log" ]] || fail 'worker deploy started after provisioning failure'export DEPLOY_TEST_BRANCH=codex/product-release-planif "$root/scripts/deploy-hosted-workers.sh" --environment production --capacity 1 --dry-run >/dev/null 2>&1; then fail 'allowed protected production'; fi: > "$log"
# Exercise the non-dry-run path without invoking Cloudflare or editing repo configs.mkdir -p "$fixture_root/scripts" "$fixture_root/deploy/cloudflare/staging/vps-api-proxy" "$fixture_root/deploy/cloudflare/staging/hosted-coordinator"ln -s "$root/scripts/deploy-hosted-workers.sh" "$fixture_root/scripts/deploy-hosted-workers.sh"ln -s "$root/scripts/deployment-target.sh" "$fixture_root/scripts/deployment-target.sh"ln -s /usr/bin/true "$fixture_root/scripts/provision-tenant-pool.sh"ln -s /usr/bin/true "$fixture_root/scripts/bootstrap-operator-workspace.sh"export DEPLOY_TEST_BRANCH=main"$fixture_root/scripts/deploy-hosted-workers.sh" --environment staging --capacity 1 >/dev/null || fail 'staging deployment success path failed'grep -Fq 'pnpm --filter @uptime/api-worker exec wrangler deploy --config ' "$log" || fail 'api worker deploy was not invoked'grep -Fq 'pnpm --filter @uptime/coordinator-worker exec wrangler deploy --config ' "$log" || fail 'coordinator worker deploy was not invoked'[[ "$(grep -c '^pnpm .* exec wrangler deploy ' "$log")" -eq 2 ]] || fail 'unexpected Wrangler invocation count'if grep -q -- '--dry-run' "$log"; then fail 'non-dry-run worker deploy included --dry-run'; fiprintf '%s\n' 'deploy-hosted-workers tests passed'