Skip to content

Commit 62f03d4

Browse files
kraenhansenclaude
andcommitted
Dump the CMake configure log when the Hermes build fails
CMake reports a failed feature check as a bare "not found", with the compiler's actual complaint only in its configure log. The host hermesc configure is failing on the macOS runner with checks that succeed everywhere else, so surface that log rather than guess at it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UkNbgdyuKgHaFwT27RahGH
1 parent 263a3bc commit 62f03d4

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/hermes-prebuilt.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,37 @@ jobs:
6767
run: |
6868
path=$(pnpm exec react-native-node-api prebuilt-hermes --no-download)
6969
echo "path=$path" >> "$GITHUB_OUTPUT"
70+
# CMake reports a failed feature check as a bare "not found", with the
71+
# compiler's actual complaint only in its configure log. Surface that log
72+
# here so a failure is diagnosable without another round trip.
73+
- name: Dump CMake configure log
74+
if: failure()
75+
run: |
76+
log=$(find "$PWD" -name CMakeConfigureLog.yaml -path '*build_host_hermesc*' | head -1)
77+
if [ -z "$log" ]; then
78+
echo "No CMakeConfigureLog.yaml found"
79+
find "$PWD" -name 'CMakeError.log' -path '*build_host_hermesc*' -exec cat {} \;
80+
exit 0
81+
fi
82+
echo "::group::Environment seen by CMake"
83+
env | sort
84+
xcode-select --print-path
85+
xcrun --show-sdk-path || true
86+
echo "::endgroup::"
87+
echo "::group::unistd.h check"
88+
grep -n -B 5 -A 45 'unistd\.h' "$log" | head -150
89+
echo "::endgroup::"
90+
echo "::group::atomics check"
91+
grep -n -B 5 -A 60 'HAVE_CXX_ATOMICS_WITHOUT_LIB' "$log" | head -180
92+
echo "::endgroup::"
93+
cp "$log" "$RUNNER_TEMP/CMakeConfigureLog.yaml"
94+
- name: Upload CMake configure log
95+
if: failure()
96+
uses: actions/upload-artifact@v7
97+
with:
98+
name: hermesc-cmake-configure-log
99+
path: ${{ runner.temp }}/CMakeConfigureLog.yaml
100+
if-no-files-found: ignore
70101
# --latest=false keeps these out of the "latest release" slot, which
71102
# belongs to the package releases changesets publishes.
72103
- name: Publish as a release asset

0 commit comments

Comments
 (0)