ci: enforce cross-platform quality gates and connector coverage - #618
Open
somethingwithproof wants to merge 13 commits into
Open
ci: enforce cross-platform quality gates and connector coverage#618somethingwithproof wants to merge 13 commits into
somethingwithproof wants to merge 13 commits into
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The fuzz workflow is path-filtered and now depends on ./.github/actions/build-spine, but changes to that action won’t trigger the fuzz workflow on PRs unless the path filter is updated.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR centralizes the CI build/setup logic into a reusable composite action and updates CI jobs to run a broader set of checks (notably running make check under ASan/UBSan) while removing unnecessary MySQL server installation.
Changes:
- Added a composite action (
.github/actions/build-spine) to install dependencies and run./bootstrap && ./configureconsistently across workflows. - Updated CI workflows to use the composite action, removing duplicated apt/bootstrap/configure steps (and dropping
mysql-serverwhere unused). - Strengthened sanitizer coverage by running the unit test suite (
make check) under ASan/UBSan.
File summaries
| File | Description |
|---|---|
| .github/workflows/integration.yml | Pins checkout and hardens step shells; keeps integration script execution intact. |
| .github/workflows/fuzz.yml | Switches build setup to the shared composite action and updates artifact upload pin. |
| .github/workflows/ci.yml | Replaces duplicated setup with the composite action; runs make check under sanitizers; removes mysql-server installs. |
| .github/actions/build-spine/action.yml | New composite action encapsulating apt deps + bootstrap/configure with configurable args/flags. |
Review details
- Files reviewed: 4/4 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Member
Author
|
@copilot review |
Member
Author
|
@copilot review |
Discover mariadb_config before mysql_config while retaining MySQL and Percona-compatible fallback linking. Validate both headers and client symbols instead of relying on filename probes. Exercise MariaDB Connector/C and MySQL Connector/C across the GCC and Clang build matrix and update the build documentation. Closes Cacti#612 Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
… from The fallback discovery scanned seven prefixes for mysql.h but only added -L paths when MYSQL_DIR was set, so a client installed under any other prefix compiled and then failed to link. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Every build job repeated the same apt-get install and bootstrap/configure pair, so a new dependency meant editing five places. The setup now lives in .github/actions/build-spine. mysql-server is dropped from the package set: configure only looks for mysql.h and libmysqlclient, both from libmysqlclient-dev, and no job starts or connects to a server. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
The sanitizer build only ran --version and --help, which exercises almost none of the poller. make check is what drives the code, so it is what the sanitizers should watch. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
somethingwithproof
force-pushed
the
chore/597-build-test-infrastructure
branch
from
September 6, 2026 07:04
8660558 to
e84a752
Compare
This was referenced Sep 6, 2026
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
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
Consolidates the connector/build work from #613 and the broader test-infrastructure work extracted from #597 into one review:
CI / requiredaggregate check for branch protectionCorrectness fixes found by the new gates
bootstrapfail closed and selectlibtoolize/glibtoolizeportablyVerification
git diff --check: passed locallyPost-merge repository settings
After these workflows exist on
develop, an administrator should requireCI / required, Fuzz, Integration, Rocky Linux, and the repository-managed CodeQL/code-scanning result in the active ruleset; enable code-owner approval; and require the branch to be current (or use a merge queue). Enabling those settings before this PR merges would create required checks that the base branch cannot yet emit.Consolidates and supersedes #613. Closes #612.