Commit e082adf7 authored by Johnny's avatar Johnny

fix: set DRIVER=sqlite in CI to prevent TestMain from spawning child processes

Problem:
- store/test/TestMain checks if DRIVER env var is set
- If not set, it runs tests for all 3 drivers (sqlite, mysql, postgres)
  by spawning child 'go test' processes
- This conflicts with t.Parallel() in individual tests
- CI workflow didn't set DRIVER, triggering multi-driver execution

Solution:
- Set DRIVER=sqlite in GitHub Actions workflow
- TestMain will run tests once with SQLite driver
- Tests run in parallel with t.Parallel() as intended
- Avoids spawning child processes and race conditions

Why SQLite:
- Fastest test execution (no container startup)
- Sufficient for CI validation
- MySQL/Postgres can be tested locally when needed

This fixes the 'table already exists' errors and test flakiness
in CI while maintaining parallel execution benefits.
parent 411e8fc5
...@@ -74,6 +74,8 @@ jobs: ...@@ -74,6 +74,8 @@ jobs:
./cmd/... ./internal/... ./proto/... ./cmd/... ./internal/... ./proto/...
;; ;;
esac esac
env:
DRIVER: sqlite # Use SQLite for fastest test execution
- name: Upload coverage - name: Upload coverage
if: github.event_name == 'push' && github.ref == 'refs/heads/main' if: github.event_name == 'push' && github.ref == 'refs/heads/main'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment