From 3360c0fbce7bdedbabae72974d7ba3b671a833a0 Mon Sep 17 00:00:00 2001 From: manjari Date: Thu, 22 Oct 2026 01:34:30 +0000 Subject: [PATCH] ci(conflict): Run the Tango MySQL suite in CI and load its schema locally --- .github/workflows/ci.yml | 16 ++++++++++++++++ Makefile | 5 +++++ doc/howto/TESTING.md | 2 +- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 42cf15ddc..0d7d6597f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -312,6 +312,21 @@ jobs: with: target: //test/integration/submitqueue/extension/storage/... + conflict-integration-test: + name: Conflict Extension Test + if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + # This job executes untrusted PR code (make build/test/lint). Don't + # leave the GITHUB_TOKEN in the workspace git config while it runs. + persist-credentials: false + - uses: ./.github/actions/setup + - uses: ./.github/actions/run-bazel-test + with: + target: //test/integration/submitqueue/extension/conflict/... + # --------------------------------------------------------------------------- # CORE TESTS # --------------------------------------------------------------------------- @@ -417,6 +432,7 @@ jobs: - merger-integration-test - validator-integration-test - storage-integration-test + - conflict-integration-test - consumer-integration-test - web - web-e2e diff --git a/Makefile b/Makefile index 2f908cfb8..8f47af53d 100644 --- a/Makefile +++ b/Makefile @@ -427,6 +427,11 @@ local-init-submitqueue-schemas: ## Manually apply all database schemas echo " - Applying $$(basename $$file)..."; \ docker exec -i $(SUBMITQUEUE_LOCAL_PROJECT)-mysql-app-1 mysql -uroot -proot submitqueue < $$file 2>&1 | grep -v "Using a password" || true; \ done + @echo "Applying Tango conflict analyzer schema to mysql-app..." + @for file in submitqueue/extension/conflict/tango/mysql/schema/*.sql; do \ + echo " - Applying $$(basename $$file)..."; \ + docker exec -i $(SUBMITQUEUE_LOCAL_PROJECT)-mysql-app-1 mysql -uroot -proot submitqueue < $$file 2>&1 | grep -v "Using a password" || true; \ + done @echo "Applying queue schema to mysql-queue..." @for file in platform/extension/messagequeue/mysql/schema/*.sql; do \ echo " - Applying $$(basename $$file)..."; \ diff --git a/doc/howto/TESTING.md b/doc/howto/TESTING.md index a23136d6d..7700fe1a7 100644 --- a/doc/howto/TESTING.md +++ b/doc/howto/TESTING.md @@ -23,7 +23,7 @@ SubmitQueue uses **two separate databases** to demonstrate proper architectural ### 1. Application Database - **Purpose**: Business data (requests, counters, batches) -- **Schema**: `submitqueue/gateway/extension/storage/mysql/schema`, `submitqueue/orchestrator/extension/storage/mysql/schema`, `platform/extension/counter/mysql/schema` +- **Schema**: `submitqueue/gateway/extension/storage/mysql/schema`, `submitqueue/orchestrator/extension/storage/mysql/schema`, `platform/extension/counter/mysql/schema`, `submitqueue/extension/conflict/tango/mysql/schema` - **Used by**: Gateway (receipts, request logs, and read models), Orchestrator (requests, batches, builds, and counters) - **Connection**: `MYSQL_DSN`