• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / cli / 27773775897
65%
develop: 65%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-5642-893960a6e9fae412eb0215afae05f1348e356e62
DEFAULT BRANCH: develop
Ran 18 Jun 2026 04:25PM UTC
Jobs 1
Files 227
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Jun 2026 04:23PM UTC coverage: 64.947%. Remained the same
27773775897

push

github

web-flow
test(cli-e2e): add live e2e suite covering the CLI command matrix (#5588)

## What

Adds a **live** e2e mode to `apps/cli-e2e` and a real-staging command
matrix on top of it, per
[CLI-1630](https://linear.app/supabase/issue/CLI-1630/set-up-proper-live-e2e-tests-for-the-cli)
and
[ADR-0013](https://github.com/supabase/cli/blob/develop/docs/adr/0013-live-e2e-bypasses-replay-server.md).

Live mode is a third mode (`CLI_E2E_MODE=live`) that, unlike
replay/record, **does not use the replay server**. The harness points
the CLI straight at the real Management API (`CLI_E2E_API_URL`) and the
real Docker socket; tests assert on **real outcomes** — process exit
codes, the HTTP responses of deployed functions (status + JSON body),
and real DB/Storage state. This is ID-agnostic, so there are no
snapshots/normalization by default.

## Changes

- **`env.ts`** — `CLI_E2E_MODE` (`replay`/`record`/`live`), `isLive`,
`TARGET_API_URL`, `CLI_E2E_PROJECT_HOST`; back-compat `RECORD=true` →
`record`.
- **`tests/staging-project.ts`** — project-lifecycle helpers extracted
from `setup.ts`: create/delete an ephemeral project, resolve the anon
JWT, the IPv4 **session-pooler `dbUrl`**, the service-role key, and seed
a Storage bucket. Record behavior is unchanged.
- **`tests/live-setup.ts`** — global setup that provisions **one
ephemeral project per run** (`cli-e2e-live-{target}-{runId}-{short}`),
waits `ACTIVE_HEALTHY`, and exposes
`projectRef`/`anonKey`/`functionsUrl`/`dbUrl`/`storageBucket` via
`inject()`; deletes the project on teardown (even on failure).
Intentionally dumb — no in-setup retry.
- **`src/tests/live/`** — `testLive` context (direct-wired `run`, HTTP
`invoke` sending the anon JWT, a `supabase init`-generated `workspace`,
`seedFunctions` to layer the `deploy-e2e-*` fixtures + their
`[functions.*]` config) plus live coverage for: functions deploy (the
three bundler modes + deploy-all), functions lifecycle (re-deploy +
delete), database (`inspect`/`migration list`/`d... (continued)

10752 of 16555 relevant lines covered (64.95%)

7.38 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
80.61
0.0% internal/storage/rm/rm.go
Jobs
ID Job ID Ran Files Coverage
1 27773775897.1 18 Jun 2026 04:25PM UTC 227
64.95
GitHub Action Run
Source Files on build 27773775897
  • Tree
  • List 227
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27773775897
  • 557e3ebf on github
  • Prev Build on gh-readonly-queue/develop/pr-5602-e09cf29142997b6ed0beac903c24b11ed73b6916 (#27764782852)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc