Split integration tests into per-database CI workflows#2900
Merged
Conversation
Start only the testcontainer needed for the database being tested instead of all 6 containers on every run. Add --database parameter to NUKE build that controls which container starts and which NUnit category filter is applied. Generate separate GitHub Actions workflow files per database (postgres, sqlserver, mysql, oracle, firebird, sqlite, basic). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Set ReadPermissions on all workflow attributes to satisfy GitHub code scanning security requirements. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
|
lahma
added a commit
that referenced
this pull request
Mar 28, 2026
Port of 3.x parallel-databases change to main. Start only the testcontainer needed for the database being tested instead of all 6 containers on every run. Add --database parameter to NUKE build that controls which container starts and which NUnit category filter is applied. Generate separate GitHub Actions workflow files per database. Also update testing dependencies (Testcontainers 4.11.0, Microsoft.Data.SqlClient 6.0.1, NUnit3TestAdapter 6.2.0, etc). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
3 tasks
lahma
added a commit
that referenced
this pull request
Mar 28, 2026
* Split integration tests into per-database CI workflows (#2900) Port of 3.x parallel-databases change to main. Start only the testcontainer needed for the database being tested instead of all 6 containers on every run. Add --database parameter to NUKE build that controls which container starts and which NUnit category filter is applied. Generate separate GitHub Actions workflow files per database. Also update testing dependencies (Testcontainers 4.11.0, Microsoft.Data.SqlClient 6.0.1, NUnit3TestAdapter 6.2.0, etc). Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> * Fix DeleteNonExistsJobTest using wrong data source name The test hardcoded DBName = "default" but DatabaseHelper registers data sources as "default-postgres" or "default-sqlserver". This was masked when all tests ran together because other tests happened to register a "default" data source first. With per-database filtering, this test runs in isolation and the bug is exposed. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]> --------- Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Summary
--databaseparameter to NUKE build (postgres, sqlserver, mysql, oracle, firebird, sqlite, basic, all)pr-tests-integrationworkflowChanges
InitializeAsync()readsQUARTZ_TEST_DATABASEenv var and conditionally starts only the needed container(s)Databaseparameter,IntegrationTesttarget sets env var and applies NUnit--filterby categoryDatabaseIntegrationGitHubActionsAttributegenerates per-database workflow files with--databaseparam andQUARTZ_TEST_DATABASEenvpr-integration-{basic,postgres,sqlserver,mysql,oracle,firebird,sqlite}.yml), oldpr-tests-integration.ymlremovedTest plan
basicworkflow runs non-database tests with no containers started./build.cmd IntegrationTestwith no--databasestill starts all containers (backward compat)build.ymlpush workflow is unaffected🤖 Generated with Claude Code