ci: pin CMake on macOS test-ios and test-ferric-apple-triplets#377
Merged
Conversation
These two jobs build the weak-node-api Apple framework via cmake-rn on macos-latest but never pinned CMake, so they hit the same 4.2.x FRAMEWORK-vs-HEADERS-file-set error that broke unit-tests (#374) and weak-node-api-tests (#375): CMake Error: The file set "HEADERS" is incompatible with the "FRAMEWORK" target "weak-node-api". test-ios fails downstream ("Expected an XCFramework at weak-node-api/build/Release/weak-node-api.xcframework") because the framework never builds. Both run on pushes to main, so they keep main red. Pin CMake to the project's 4.1.2 on both, matching the other jobs. Interim workaround; proper CMakeLists fix tracked in #376. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UCN2h9xbyn4yhxfVZyMzAm
3 tasks
2 tasks
kraenhansen
pushed a commit
that referenced
this pull request
Jul 19, 2026
CMake 4.2 rejects a `HEADERS` file set on a `FRAMEWORK` target, which
broke every macOS job that builds the weak-node-api framework:
CMake Error in CMakeLists.txt:
The file set "HEADERS", of type "HEADERS", is incompatible with the
"FRAMEWORK" target "weak-node-api".
The workaround pinned CMake to 4.1.2 on five macOS jobs (#374, #375,
#377, and the pre-existing test-macos pin). This fixes the root cause
instead.
On Apple, the public headers are shipped via the framework's
PUBLIC_HEADER property; other platforms use a HEADERS file set for
install packaging. The build-interface include directories that the
file set previously supplied to in-tree consumers (e.g. the C++ tests)
are now provided explicitly via target_include_directories, so both
branches build unchanged.
With the root cause fixed, revert the macOS CMake version pin from all
five jobs. CMAKE_VERSION is retained since it still selects the Android
SDK cmake package for test-android.
Closes #376
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aq4PqMYq8cQTP9Lf43JiwH
3 tasks
kraenhansen
added a commit
that referenced
this pull request
Jul 19, 2026
* Split public header packaging between framework and file set
CMake 4.2 rejects a `HEADERS` file set on a `FRAMEWORK` target, which
broke every macOS job that builds the weak-node-api framework:
CMake Error in CMakeLists.txt:
The file set "HEADERS", of type "HEADERS", is incompatible with the
"FRAMEWORK" target "weak-node-api".
The workaround pinned CMake to 4.1.2 on five macOS jobs (#374, #375,
#377, and the pre-existing test-macos pin). This fixes the root cause
instead.
On Apple, the public headers are shipped via the framework's
PUBLIC_HEADER property; other platforms use a HEADERS file set for
install packaging. The build-interface include directories that the
file set previously supplied to in-tree consumers (e.g. the C++ tests)
are now provided explicitly via target_include_directories, so both
branches build unchanged.
With the root cause fixed, revert the macOS CMake version pin from all
five jobs. CMAKE_VERSION is retained since it still selects the Android
SDK cmake package for test-android.
Closes #376
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aq4PqMYq8cQTP9Lf43JiwH
* ci: trigger CI with Apple/macOS/Ferric/weak-node-api labels
Empty commit to re-run the label-gated macOS jobs now that the labels
are applied, so the reverted CMake pin is validated on the runner's
default CMake.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aq4PqMYq8cQTP9Lf43JiwH
---------
Co-authored-by: Claude <noreply@anthropic.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.
Why
Follow-up to #374 / #375. The first push-to-
mainrun in months surfaced that two more macOS jobs hit the same CMake 4.2.x FRAMEWORK-vs-HEADERS error, because they build theweak-node-apiApple framework but never pinned CMake:CMake Error in CMakeLists.txton every Apple triplet duringprebuild:build:apple.Expected an XCFramework at .../weak-node-api/build/Release/weak-node-api.xcframework(never built because the CMake generate step failed).Both run on pushes to
main, so they keepmainred even after #375.What
jwlawson/actions-setup-cmakepin (CMAKE_VERSION= 4.1.2) totest-iosandtest-ferric-apple-triplets, matchingunit-tests,weak-node-api-tests, andtest-macos.This PR is labeled
Apple 🍎andFerric 🦀so both jobs run here and validate before merge.Test plan
Interim workaround; the proper CMakeLists fix (so no pins are needed anywhere) is tracked in #376.
🤖 Generated with Claude Code