Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1574 +/- ##
==========================================
+ Coverage 92.59% 95.16% +2.57%
==========================================
Files 33 34 +1
Lines 6048 7659 +1611
==========================================
+ Hits 5600 7289 +1689
+ Misses 448 370 -78 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
f1cfcb5 to
c154426
Compare
There was a problem hiding this comment.
Pull request overview
Updates CI to reduce network fetches and speed up builds by caching external dependencies and using them as FetchContent sources across jobs.
Changes:
- Add a reusable composite action to clone + cache external git dependencies (TBB, Clipper2, nanobind, fuzztest).
- Refactor
.github/workflows/manifold.ymlto use cached clones, add more caching (pip, apt, nix), and reorganize/expand job coverage (incl. Windows). - Update the CMake subdirectory consumer test script to pass
FETCHCONTENT_SOURCE_DIR_*overrides.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
scripts/test-cmake-subdir.sh |
Passes cached dependency paths into the subdir consumer build via FETCHCONTENT_SOURCE_DIR_*. |
.github/workflows/manifold.yml |
Major CI refactor: caching, dependency cloning reuse, Windows job, updated build/test invocations, nix cache. |
.github/actions/git-clone/action.yml |
New composite action implementing clone + actions/cache for external repos. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
| mkdir build | ||
| cd build | ||
| cmake .. | ||
| cmake -DFETCHCONTENT_SOURCE_DIR_CLIPPER2=$CLIPPER2 -DFETCHCONTENT_SOURCE_DIR_TBB=$TBB .. |
There was a problem hiding this comment.
only add these when the variables are non-empty.
| - name: Test | ||
| if: matrix.cross_section == 'ON' | ||
| run: | | ||
| ./build/test/manifold_test | ||
| # python tests | ||
| export PYTHONPATH=$PYTHONPATH:$(pwd)/build/bindings/python | ||
| python3 bindings/python/examples/run_all.py -e | ||
| python3 -m pytest |
There was a problem hiding this comment.
We don't need to run tests with cross-section disabled, since it can only disable tests instead of testing more code path. It is a strictly compile-only check CI check.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
elalish
left a comment
There was a problem hiding this comment.
There's a lot here - do you have a general description of what's changing at a high level?
| with: | ||
| name: tbb | ||
| url: https://github.com/oneapi-src/oneTBB.git | ||
| rev: f1862f38f83568d96e814e469ab61f88336cc595 |
There was a problem hiding this comment.
Can we use tagged releases for any of these?
There was a problem hiding this comment.
I did not find a way to do a shallow pull with tagged releases previously. I can probably ask LLM to see if there is a way.
| - uses: jwlawson/actions-setup-cmake@v2 | ||
| - uses: actions/setup-node@v6 | ||
| with: | ||
| node-version: 24 |
There was a problem hiding this comment.
I think I used 25 somewhere else. Should probably be consistent.
There was a problem hiding this comment.
Just checked, you are using 25 for publish_npm, will change this to 25.
| cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMANIFOLD_STRICT=ON -DMANIFOLD_DEBUG=ON -DMANIFOLD_FUZZ=ON -DMANIFOLD_PYBIND=OFF -DCMAKE_CXX_COMPILER=clang++ .. | ||
| make | ||
|
|
||
| build_fuzzer_mac: |
There was a problem hiding this comment.
Are there some CI runs that I need to remove from the github required list?
There was a problem hiding this comment.
Some of the names have been changed. E.g., build_fuzzer_mac and build_fuzzer become build_fuzzer with an os matrix.
There was a problem hiding this comment.
You need to change the required list to merge this.
Will do later today, busy with other stuff for now. |
|
The copilot summary above was quite good, but I can expand on that.
Not yet solved:
|
elalish
left a comment
There was a problem hiding this comment.
Thanks - I didn't even notice copilot summarized the PR; that's an interesting feature.
No description provided.