f7e2976324
ci-arm64-advisory / fast-checks (pull_request) Waiting to run
Lint shellcheck (arm64 pilot) / shellcheck-arm64 (pilot) (pull_request) Successful in 9s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 7s
Check migration collisions / Migration version collision check (pull_request) Successful in 10s
CI / Detect changes (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 5s
E2E API Smoke Test / detect-changes (pull_request) Successful in 7s
E2E Chat / detect-changes (pull_request) Successful in 7s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request) Successful in 5s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 10s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Successful in 6s
Harness Replays / detect-changes (pull_request) Successful in 4s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 4s
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Successful in 33s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (pull_request) Successful in 50s
Lint no tenant GITEA or GITHUB token write / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 8s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 9s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 58s
gate-check-v3 / gate-check (pull_request) Successful in 4s
qa-review / approved (pull_request) Successful in 3s
security-review / approved (pull_request) Successful in 3s
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request) Successful in 4s
sop-checklist / review-refire (pull_request) Has been skipped
sop-tier-check / tier-check (pull_request) Successful in 4s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 1m6s
E2E Staging External Runtime / E2E Staging External Runtime (pull_request) Successful in 5m25s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 20s
E2E Chat / E2E Chat (pull_request) Successful in 33s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 11s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 1m58s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 2m44s
Harness Replays / Harness Replays (pull_request) Successful in 6s
CI / Platform (Go) (pull_request) Successful in 6m9s
CI / Canvas (Next.js) (pull_request) Successful in 7m41s
CI / all-required (pull_request) Successful in 32m0s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
audit-force-merge / audit (pull_request) Successful in 32s
90 lines
3.2 KiB
Bash
Executable File
90 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Seed BOTH tenants with parent + child workspaces so peer-discovery
|
|
# and cross-tenant replays have something to discover.
|
|
#
|
|
# Tenant alpha:
|
|
# - alpha-parent (tier 0)
|
|
# - alpha-child (tier 1, child of alpha-parent)
|
|
# Tenant beta:
|
|
# - beta-parent (tier 0)
|
|
# - beta-child (tier 1, child of beta-parent)
|
|
#
|
|
# IDs are server-generated (POST /workspaces ignores body.id) — we
|
|
# capture the returned id rather than minting client-side. Older
|
|
# versions silently desynced from the workspaces table, breaking
|
|
# FK-dependent replays.
|
|
#
|
|
# All four IDs persist to .seed.env so replays can target any of them.
|
|
|
|
set -euo pipefail
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$HERE"
|
|
|
|
# shellcheck source=_curl.sh
|
|
source "$HERE/_curl.sh"
|
|
|
|
create_workspace() {
|
|
local tenant="$1" name="$2" tier="$3" parent="${4:-}"
|
|
local body
|
|
if [ -n "$parent" ]; then
|
|
body="{\"name\":\"$name\",\"tier\":$tier,\"parent_id\":\"$parent\",\"runtime\":\"claude-code\",\"model\":\"sonnet\"}"
|
|
else
|
|
body="{\"name\":\"$name\",\"tier\":$tier,\"runtime\":\"claude-code\",\"model\":\"sonnet\"}"
|
|
fi
|
|
local id
|
|
if [ "$tenant" = "alpha" ]; then
|
|
id=$(curl_alpha_admin -X POST "$BASE/workspaces" -d "$body" | jq -r '.id')
|
|
else
|
|
id=$(curl_beta_admin -X POST "$BASE/workspaces" -d "$body" | jq -r '.id')
|
|
fi
|
|
if [ -z "$id" ] || [ "$id" = "null" ]; then
|
|
echo "[seed] FAIL: $tenant/$name workspace creation returned no id" >&2
|
|
return 1
|
|
fi
|
|
echo "$id"
|
|
}
|
|
|
|
echo "[seed] confirming both tenants reachable..."
|
|
ALPHA_HEALTH=$(curl_alpha_anon "$BASE/health" || echo "")
|
|
BETA_HEALTH=$(curl_beta_anon "$BASE/health" || echo "")
|
|
if [ -z "$ALPHA_HEALTH" ] || [ -z "$BETA_HEALTH" ]; then
|
|
echo "[seed] FAIL: tenant unreachable. alpha='$ALPHA_HEALTH' beta='$BETA_HEALTH'"
|
|
echo " Did ./up.sh complete cleanly?"
|
|
exit 1
|
|
fi
|
|
echo "[seed] alpha: $ALPHA_HEALTH"
|
|
echo "[seed] beta : $BETA_HEALTH"
|
|
|
|
echo ""
|
|
echo "[seed] tenant alpha — creating alpha-parent + alpha-child ..."
|
|
ALPHA_PARENT_ID=$(create_workspace alpha alpha-parent 0)
|
|
echo "[seed] alpha-parent id=$ALPHA_PARENT_ID"
|
|
ALPHA_CHILD_ID=$(create_workspace alpha alpha-child 1 "$ALPHA_PARENT_ID")
|
|
echo "[seed] alpha-child id=$ALPHA_CHILD_ID"
|
|
|
|
echo ""
|
|
echo "[seed] tenant beta — creating beta-parent + beta-child ..."
|
|
BETA_PARENT_ID=$(create_workspace beta beta-parent 0)
|
|
echo "[seed] beta-parent id=$BETA_PARENT_ID"
|
|
BETA_CHILD_ID=$(create_workspace beta beta-child 1 "$BETA_PARENT_ID")
|
|
echo "[seed] beta-child id=$BETA_CHILD_ID"
|
|
|
|
# Stash IDs for replay scripts.
|
|
#
|
|
# Backwards-compat: ALPHA_ID + BETA_ID aliases keep pre-Phase-2 replays
|
|
# working (they used these names for the alpha tenant's parent + child).
|
|
{
|
|
echo "ALPHA_PARENT_ID=$ALPHA_PARENT_ID"
|
|
echo "ALPHA_CHILD_ID=$ALPHA_CHILD_ID"
|
|
echo "BETA_PARENT_ID=$BETA_PARENT_ID"
|
|
echo "BETA_CHILD_ID=$BETA_CHILD_ID"
|
|
echo "# legacy aliases — pre-Phase-2 replays expect these names"
|
|
echo "ALPHA_ID=$ALPHA_PARENT_ID"
|
|
echo "BETA_ID=$ALPHA_CHILD_ID"
|
|
} > "$HERE/.seed.env"
|
|
|
|
echo ""
|
|
echo "[seed] done. IDs persisted to tests/harness/.seed.env"
|
|
echo "[seed] alpha: parent=$ALPHA_PARENT_ID child=$ALPHA_CHILD_ID"
|
|
echo "[seed] beta : parent=$BETA_PARENT_ID child=$BETA_CHILD_ID"
|