Skip to content

Remove obsolete Docker/Buildkite infra, update to Supabase-based local dev#60

Draft
Copilot wants to merge 8 commits intomainfrom
copilot/remove-dockerfiles-and-update-tests
Draft

Remove obsolete Docker/Buildkite infra, update to Supabase-based local dev#60
Copilot wants to merge 8 commits intomainfrom
copilot/remove-dockerfiles-and-update-tests

Conversation

Copy link

Copilot AI commented Feb 9, 2026

Removes all obsolete Docker, Buildkite, and self-hosted infrastructure, replacing it with a Supabase CLI-based local development and test workflow.

Removed

  • Dockerfile, Dockerfile.dev, .dockerignore
  • docker/docker-compose.{yml,dev.yml,test.yml}
  • tools/docker/{start.sh,test.sh}
  • .buildkite/pipeline.yml

Updated

  • package.json — dropped Docker-based build/start scripts, test now runs dotenv -e .env.test -- bun jest --runInBand directly
  • jest_global_setup.ts — uses supabase db reset to apply migrations, schemas, and seeds once before the test suite
  • jest_setup.ts — uses TRUNCATE ... RESTART IDENTITY CASCADE + re-seed in beforeEach for fast per-test data reset
  • tools/update_schema.sh — sources .env.localdev instead of deleted .env.docker
  • .env.test — populated with Supabase local defaults, uses SEARCH_IMPLEMENTATION=postgres, Supabase keys left blank for users to supply from supabase status
  • README.md — rewritten for supabase startbun dev:local workflow
  • AGENTS.md — updated repo summary and commands, removed Meilisearch and MinIO references

Added

  • .github/workflows/test.yml — CI workflow that sets up Bun and Supabase CLI, starts local Supabase, extracts keys from supabase status, and runs bun check + bun test
Original prompt

The repo infra has changed a lot, previously running a lot of things self hosted / manually, to now being hosted on Vercel and Supabase.

This means that a large part of the codebase around setup and testing is no longer working, e.g. it still has dockerfiles for running Postgres locally.

Update it so that:

  • all unused / no longer needed parts of Docker are removed
  • tests and test infra is updated to no longer rely on that
  • any readmes, initialisation or setup scripts, CI scripts, are updated accordingly
  • you can assume that the user has the Supabase CLI available locally for running a local version of Supabase

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@vercel
Copy link

vercel bot commented Feb 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
paradb Ready Ready Preview, Comment Feb 9, 2026 7:23am

Request Review

Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Copilot AI changed the title [WIP] Update infra to remove unused Docker files and update tests Remove obsolete Docker/Buildkite infra, update to Supabase-based local dev Feb 9, 2026
Copilot AI requested a review from bitnimble February 9, 2026 06:46
Copy link
Owner

@bitnimble bitnimble left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Meilisearch is obsolete so don't reference it, don't delete it from the codebase though. If S3 can use the local Supabase S3 API, then Minio can be deleted.
Is there any way for this to avoid clobbering data in the local Supabase if the user has some? e.g. using a different schema in the PG database etc.

…test

Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Copilot AI and others added 2 commits February 9, 2026 06:58
Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Copy link
Author

Copilot AI commented Feb 9, 2026

Meilisearch is obsolete so don't reference it, don't delete it from the codebase though. If S3 can use the local Supabase S3 API, then Minio can be deleted.
Is there any way for this to avoid clobberi...

Addressed in a3ff7f9 and c6e43c6:

  • Removed Meilisearch and MinIO from AGENTS.md, .env.test now uses SEARCH_IMPLEMENTATION=postgres
  • Tests use PGDATABASE=paradb_test so they won't clobber local dev data in the default postgres database
  • Added jest_global_setup.ts that creates paradb_test and applies the schema files before the test suite runs

Copy link

@declanvong declanvong left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also add or update Github workflows to run the tests, make sure the workflow environment is set up with Supabase

try {
const schemasDir = path.resolve(__dirname, '../../supabase/schemas');
// Apply schemas in order matching supabase config.toml
const schemaFiles = ['maps.sql', 'users.sql', 'favorites.sql', 'functions.sql', 'misc.sql'];

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

avoiding recreating the test db or manually applying schema changes in a TS file. if possible, run a shell script that uses the supabase db cli to create it

const { pool } = await getServerContext();
const initialDataSqlPath = path.resolve(__dirname, '../../db/fake_data.sql');
const initialDataSql = await fs.readFile(initialDataSqlPath).then((b) => b.toString());
const seedSqlPath = path.resolve(__dirname, '../../supabase/seed.sql');

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to reset the DB as well as seed the data

.env.test Outdated
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=
SUPABASE_SECRET_KEY=
NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321
NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

leave these keys out, they should be supplied by the user

@bitnimble
Copy link
Owner

@copilot address the changes recommended above

… workflow

Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Co-authored-by: bitnimble <4076797+bitnimble@users.noreply.github.com>
Copy link
Author

Copilot AI commented Feb 9, 2026

@copilot address the changes recommended above

Addressed in ec8f929..6186222:

  • jest_global_setup.ts: replaced manual DB creation + schema application with supabase db reset
  • jest_setup.ts: beforeEach now uses TRUNCATE ... RESTART IDENTITY CASCADE + re-seed (full schema reset handled once in global setup)
  • .env.test: removed hardcoded Supabase JWT keys, users supply them from supabase status
  • Added .github/workflows/test.yml CI workflow that sets up Supabase, extracts keys from supabase status, runs bun check and bun test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants