← all branches

feat/tb-deploy

safe
5d30429 · incrementalPR #261reviewed 2026-07-08 23:04 UTC0H · 0M · 1L
The branch
Purpose
Define and automate Batu's Tinybird deployment strategy: three long-lived workspaces (batu_dev / batu_stg / batu_prod) for hard isolation, ephemeral Forward branches per PR inside dev, and a per-environment token split replacing the single shared TINYBIRD_TOKEN.
Goal
Per-env Tinybird tokens + schema-CD: the SSM seed, Vercel env vars, and a new schema-CD lane (tb deploy) all become per-environment and gated on the appropriate secrets.
Sub-goals
  • SG-1: Strategy rule doc + README de-stale; scoped runtime-vs-deploy-token split
  • SG-2: Per-env metrics-SSM seed (preview → DEV, staging → STG, prod → PROD)
  • SG-3: Vercel per-env tokens (operator action + docs)
  • SG-4: Ephemeral per-PR Tinybird branch provisioning + cleanup
  • SG-5: Schema-CD jobs (tinybird-staging / tinybird-prod, CI-only WORKSPACE:DEPLOY token)
  • SG-6: Fold per-env tokens + schema-CD into infrastructure.md / migration-pipeline.md
The changes (whole branch)
What
This incremental commit (fix/ci) pins the uv binary to v0.11.28 and sets enable-cache: false on the astral-sh/setup-uv action inside the tb-install composite action. The default enable-cache: auto was globbing the entire repo for Python dependency files, walking the huge node_modules tree and causing a ~20-minute install time. The fix reduces tb-install from 22 min to ~30 s with no change to the deploy contract.
Why
Performance regression fix for the tb-install composite action introduced earlier in this branch. The setup-uv action's cache behaviour was undocumented in its defaults and the monorepo's node_modules triggered pathological glob expansion.
Areas
.github/actions/tb-install+70
Blast
1 file, +7/−0 in this commit. Full branch: 15 files, +899/−110 across .github/workflows (CI pipelines), .github/actions (composite action), infra/tinybird (workspace-as-code + tests), .claude/rules (strategy docs).
CI-only change no TypeScript diff no DB/CDK/API change
CI checks· statusCheckRollup not accessible via current tokenCodeRabbit· no .coderabbit.yaml

Findings · 1

improvement1

low

CRITICAL comment block is justified but can be trimmed by ~half

.github/actions/tb-install/action.yml:27

The 4-line block explains a genuine footgun (enable-cache: auto globs **/*requirements*.txt / **/pyproject.toml across the whole repo, which walks node_modules in this monorepo for ~20 min). The warning is warranted. Lines 3–4 restate what lines 1–2 already imply; could compress to two lines without losing any of the key facts (what the default does, why it's catastrophic here, why we don't need the cache).

History · 10 commits

  1. 5d30429safeincremental0H · 0M · 1L2026-07-08 23:04current
  2. 19bac85needs attentionincremental0H · 5M · 6L2026-07-08 22:46
  3. 92e890aneeds attentionincremental0H · 1M · 3L2026-07-08 21:46
  4. e81a781needs attentionincremental0H · 4M · 4L2026-07-08 21:31
  5. 2eca91cneeds attentionfull5H · 13M · 12L2026-07-08 19:18
  6. cf63bb1needs attentionincremental4H · 4M · 7L2026-07-07 19:47
  7. f43d034needs attentionincremental2H · 3M · 3L2026-07-07 18:35
  8. b7800c0needs attentionincremental1H · 2M · 7L2026-07-07 03:31
  9. 5aef105needs attentionfull6H · 9M · 2L2026-07-06 17:52
  10. 95b4484blockedfull3H · 8M · 4L2026-07-06 05:36