Skip to content

ci(db): add DB driver build and sanitizer matrix #444

Description

@GaspardKirira

Summary

Add CI coverage for the main DB module build configurations and automated tests.

The DB module supports optional drivers and platform-dependent dependencies. CI must detect build failures and unsafe concurrency behavior before changes are merged.

Current behavior

The DB module exposes configuration options for:

  • MySQL;
  • SQLite;
  • tests;
  • examples;
  • migration tools;
  • sanitizers through shared Vix helpers.

There is no dedicated DB CI matrix validating the important combinations.

Expected behavior

CI must build and test the DB module in representative standalone and umbrella configurations.

Driver-specific integration tests should run only when their dependencies are available.

Scope

  • Add a SQLite-enabled test job.
  • Add a MySQL-enabled build job.
  • Add a standalone DB module build.
  • Add a Vix umbrella build with DB tests.
  • Add AddressSanitizer and UndefinedBehaviorSanitizer coverage.
  • Add ThreadSanitizer coverage where supported.
  • Run CTest with failure output enabled.
  • Cache dependencies where appropriate.
  • Keep secret database credentials out of pull-request jobs.
  • Preserve existing release workflows.

Suggested configurations

  • SQLite enabled, MySQL disabled.
  • MySQL enabled, SQLite disabled.
  • SQLite and MySQL enabled.
  • DB tests enabled.
  • DB tools enabled.
  • Sanitizer-enabled Linux build.
  • Windows compilation coverage.
  • macOS compilation coverage.

Suggested files

  • .github/workflows/db.yml
  • modules/db/CMakeLists.txt
  • modules/db/tests/CMakeLists.txt

Acceptance criteria

  • Pull requests touching modules/db trigger DB validation.
  • SQLite tests run without external services.
  • MySQL compilation is validated.
  • MySQL integration tests can run in a controlled CI job.
  • Standalone and umbrella builds are covered.
  • CTest failures display complete output.
  • Sanitizer findings fail the job.
  • No secrets are exposed to untrusted pull requests.
  • Existing workflows continue to function.

Non-goals

This issue does not include:

  • performance benchmarks;
  • production database credentials;
  • release artifact generation;
  • ORM CI coverage.

Suggested labels

  • scope:db
  • type:ci
  • tests
  • ci
  • sanitizers
  • help wanted
  • status:ready

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciContinuous integration, build, and automation issueshelp wantedExtra attention is neededsanitizersRuntime and compile-time analysis using sanitizers (ASan, UBSan, TSan).scope:dbDatabase driversstatus:readyIssue is fully specified and ready for implementationtestsTests, CI coverage and validationtype:ciCI, tests, or tooling

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions