Chore/e2e tests GitHub action (#2193)
* ci: add e2e tests workflow against a locally-built Realtime image Builds the Realtime image from the checkout and swaps it into a local supabase stack (mise run e2e-local), so it exercises the actual PR changes rather than whatever image the pinned Supabase CLI bundles. Runs with --parallel --wait-time 10. Part of REAL-1037. * fix: create e2e test RLS policies sequentially, not concurrently On a fresh database these CREATE POLICY statements actually run (the IF NOT EXISTS guard only short-circuits once they already exist), and running them concurrently via Promise.allSettled let them deadlock in Postgres. The deadlock was silently swallowed, leaving policies missing and causing RLS violations and channel-subscribe failures in CI, which always starts from a fresh database. Part of REAL-1037. * ci: run only functional e2e tests, skip load tests Part of REAL-1037. * chore: scope e2e tests that can suffer from crosstalk. Some e2e tests in the postgres-changes-filters suite have negation filters that will match against every other test running concurrently. This change introduces scoping at the database table level that allows a test's data to be isolated from other test cases. It only needs to be used for tests that suffer from this issue, which is typically those that include negations and risk matching against rows created by other tests. * chore: Add isolation to open ended range tests * chore: don't run test suites that hit pg_changes at the same time. * chore: opt postgres_changes e2e tests into wait:true acks Adding this in an attempt to reduce some flakiness. It does help on a cold start but the wait only waits for the subscription row to be created, not for the replication poller to be established, so it still has some gaps.
S
Sean Geoghegan committed
5a258870f3c7ce0ceccdfbbe64eda56a096eff61
Parent: 3625a0b
Committed by GitHub <noreply@github.com>
on 9/16/2026, 2:02:00 AM