← All docs changelog/2026-05-18.md

May 18, 2026

Commits

945e6d4 — ci: migrate promotion DAG to Modal-driven pipeline (Phase 4)

Major CI overhaul: the entire promotion DAG (dev→beta→main) moves from GitLab CI shell scripts to Modal-driven functions. New modules ci/webhook.py (HTTP dispatch), ci/deploy_in_modal.py (remote deploys), ci/bruno_in_modal.py (remote test execution), ci/_git_in_modal.py (git operations inside Modal), and ci/scheduled_cleanup.py (cron for non-prod app cleanup + canary tests). The Justfile gains deploy-remote, test-remote, promote, and approve-prod recipes. deploy.sh shrinks as deploy logic moves server-side.

Added:

  • ci/webhook.py — HTTP webhook dispatcher for CI actions (+215)
  • ci/deploy_in_modal.py — remote Modal deploy function (+138)
  • ci/bruno_in_modal.py — remote Bruno test runner in Modal (+213)
  • ci/_git_in_modal.py — git operations (merge, branch tips, env states) inside Modal (+245)
  • ci/_net_diag.py — network diagnostic helper (+54)
  • ci/_smoketest_in_modal.py — post-deploy smoke test (+76)
  • ci/scheduled_cleanup.py — scheduled non-prod cleanup + canary cron (+131)
  • ci/ShellScripts/run_bruno.sh — Bruno runner shell wrapper (+70)

Changed:

  • .gitlab-ci.yml — simplify to webhook triggers (+149/-?)
  • Justfile — add remote deploy/test/promote/approve recipes (+116)
  • dev/deploy.sh — extract deploy logic to Modal (+205/-?)
  • dev/.justfiles/setup-worktree.sh — CI env setup (+4)
  • .gitignore — CI artifacts (+1)