ci: modularize CI workflow#1193
Conversation
|
| Scope | Lines Δ% | Lines Δ | Lines + | Lines - | Files Δ | Files + | Files ~ | Files ↔ | Files - |
|---|---|---|---|---|---|---|---|---|---|
| ⚙️ CI | 69% | 2480 | 1077 | 1403 | 18 | 8 | 6 | - | 4 |
| 🔧 Toolchain Tests | 17% | 596 | 546 | 50 | 5 | - | 5 | - | - |
| 🔧 Toolchain | 11% | 382 | 314 | 68 | 5 | - | 5 | - | - |
| 🛠️ Source | 2% | 88 | 68 | 20 | 2 | - | 2 | - | - |
| 📄 Docs | 1% | 20 | 20 | - | 1 | - | 1 | - | - |
| 🏗️ Build | <1% | 13 | 8 | 5 | 1 | - | 1 | - | - |
| Total | 100% | 3579 | 2033 | 1546 | 32 | 8 | 20 | - | 4 |
Legend: Files + (added), Files ~ (modified), Files ↔ (renamed), Files - (removed)
🔝 Top Files
- .github/workflows/ci.yml (CI): 1164 lines Δ (+27 / -1137)
- .github/workflows/ci-releases.yml (CI): 350 lines Δ (+350 / -0)
- util/bootstrap/tests/test_archive_fetcher_loader.py (Toolchain Tests): 289 lines Δ (+258 / -31)
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #1193 +/- ##
===========================================
+ Coverage 79.20% 82.12% +2.92%
===========================================
Files 308 33 -275
Lines 32332 3149 -29183
Branches 6493 734 -5759
===========================================
- Hits 25607 2586 -23021
+ Misses 4355 387 -3968
+ Partials 2370 176 -2194
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
An automated preview of the documentation is available at https://1193.mrdocs.prtest2.cppalliance.org/index.html If more commits are pushed to the pull request, the docs will rebuild at the same URL. 2026-05-01 21:09:42 UTC |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 85c4debe42
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
449ca29 to
5be5b35
Compare
When use-system-stdlib is enabled and the compiler specified in the compilation database cannot be found (e.g. synthetic databases that reference "clang" on systems with only GCC), try common fallback compilers (g++, gcc, clang++, clang, c++) to discover system include paths. This prevents fatal "stddef.h not found" errors when running mrdocs on systems where the database compiler isn't installed.
Only ASan and MSan require instrumented dependencies (libc++). UBSan and TSan instrumentation is added at compile time to the project itself, not to its dependencies. Passing the sanitizer to LLVM builds for UBSan caused unnecessary 2+ hour rebuilds and cache key mismatches. Also simplify the stamp hash: only include compiler path and flags when the sanitizer actually changes how deps are built. This lets builds with different compilers share the same cached LLVM when no sanitizer instrumentation is needed.
The banner was added when the rules were brand new; nothing has come back about false positives since, so warnings can stand on their own like any other check.
libstdc++-15 implements ranges::less via __not_overloaded_spaceship, which probes operator<=> via ADL on the element type. For SmallVector<Symbol*, 16>, ADL on Symbol* finds the generic mrdocs::operator<=> template. Clang 19 substitutes T = Symbol* into that template and hard-errors on the resulting non-member operator<=> with no class/enum parameter, instead of SFINAE'ing the candidate out -- a regression present in 19 but not in 18 or >=20.
CI has become the biggest bottleneck in the project by a wide margin. This PR extremely modularizes, simplifies, and optimizes the CI workflow.
Tested by running the full CI matrix on this branch and by extending the bootstrap unit tests.