Repository navigation
ci: deduplicate builds and parallelize sanitizer and Windows checks - #161
Merged
Merged
Conversation
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
Reduce duplicate CI builds and shorten sanitizer and Windows consumer checks while retaining required check names and test coverage.
The Windows change replaces two sequential component pipelines with four independent jobs. It adds two runner-job instances to shorten the critical path; it does not claim lower total computation, and runner queueing can affect the benefit.
Testing
Local sanitizer timing used Xeon Gold 6418H, GCC 13.4, Debug -O1 -g, native optimization OFF, ASan+UBSan and OpenMP ON, and existing GoogleTest 1.11.0 through a source override. CI pins v1.14.0. Both sides of the local comparison used identical binaries/dependencies.
CI verification: the latest run on 73a73f2 passed all 27 C++ workflow jobs in 6m57s, compared with 10m15s on b8b1936. Windows core ON/OFF took 3m04s/4m18s; FastScan ON/OFF took 3m16s/5m26s. The longest Windows consumer fell from 9m56s to 5m26s. Each OpenMP mode retains 314 Windows CTest executions (140 core + 174 FastScan), matching the previous combined job. This is a single-run observation with runner variance; it does not establish lower total computation. Run: https://github.com/VectorDB-NTU/RaBitQ-Library/actions/runs/39952542023
The earlier CI run on b8b1936 passed: sanitizer testing took 112s versus 243s in PR #160. Compilation also varied, so that result does not establish the whole-job causal speedup.