@@ -148,12 +148,18 @@ jobs:
148148 # above, which is exactly what removing the file leaves.
149149 rm -f "$src/.xlings.json"
150150 ( cd "$src" && mcpp build --release )
151- # ⭐ `$src` is a FRESH clone each run, so `target/` holds exactly what
152- # this step just built and there is no earlier fingerprint directory
153- # to pick by mistake. `-printf` would be the safer form on a cached
154- # tree and is a GNU extension this must not use — one of the runners
155- # that reaches this line is macOS.
156- built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
151+ # ⚠️ BOTH SPELLINGS, AND NO `-perm`. The matrix reaches Windows and
152+ # macOS runners too: on Windows the artefact is `mcpp.exe`, and
153+ # `-perm -u+x` is not a question that filesystem answers the way this
154+ # expects. Measured: `Finished release [optimized] in 173.44s`
155+ # followed by "mcpp did not build" — the build had succeeded and the
156+ # search was looking for the wrong name.
157+ #
158+ # `$src` is a FRESH clone each run, so `target/` holds exactly what
159+ # this step just built; `-printf` would be the safer form on a cached
160+ # tree and is a GNU extension this must not use.
161+ built=$(find "$src/target" -type f \
162+ \( -name mcpp -o -name mcpp.exe \) | head -1)
157163 [ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }
158164 echo "$(cd "$(dirname "$built")" && pwd)" >> "$GITHUB_PATH"
159165 # ⚠️ Reported, because a PATH entry that does not win looks exactly
@@ -417,12 +423,18 @@ jobs:
417423 # above, which is exactly what removing the file leaves.
418424 rm -f "$src/.xlings.json"
419425 ( cd "$src" && mcpp build --release )
420- # ⭐ `$src` is a FRESH clone each run, so `target/` holds exactly what
421- # this step just built and there is no earlier fingerprint directory
422- # to pick by mistake. `-printf` would be the safer form on a cached
423- # tree and is a GNU extension this must not use — one of the runners
424- # that reaches this line is macOS.
425- built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
426+ # ⚠️ BOTH SPELLINGS, AND NO `-perm`. The matrix reaches Windows and
427+ # macOS runners too: on Windows the artefact is `mcpp.exe`, and
428+ # `-perm -u+x` is not a question that filesystem answers the way this
429+ # expects. Measured: `Finished release [optimized] in 173.44s`
430+ # followed by "mcpp did not build" — the build had succeeded and the
431+ # search was looking for the wrong name.
432+ #
433+ # `$src` is a FRESH clone each run, so `target/` holds exactly what
434+ # this step just built; `-printf` would be the safer form on a cached
435+ # tree and is a GNU extension this must not use.
436+ built=$(find "$src/target" -type f \
437+ \( -name mcpp -o -name mcpp.exe \) | head -1)
426438 [ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }
427439 echo "$(cd "$(dirname "$built")" && pwd)" >> "$GITHUB_PATH"
428440 # ⚠️ Reported, because a PATH entry that does not win looks exactly
@@ -659,12 +671,18 @@ jobs:
659671 # above, which is exactly what removing the file leaves.
660672 rm -f "$src/.xlings.json"
661673 ( cd "$src" && mcpp build --release )
662- # ⭐ `$src` is a FRESH clone each run, so `target/` holds exactly what
663- # this step just built and there is no earlier fingerprint directory
664- # to pick by mistake. `-printf` would be the safer form on a cached
665- # tree and is a GNU extension this must not use — one of the runners
666- # that reaches this line is macOS.
667- built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
674+ # ⚠️ BOTH SPELLINGS, AND NO `-perm`. The matrix reaches Windows and
675+ # macOS runners too: on Windows the artefact is `mcpp.exe`, and
676+ # `-perm -u+x` is not a question that filesystem answers the way this
677+ # expects. Measured: `Finished release [optimized] in 173.44s`
678+ # followed by "mcpp did not build" — the build had succeeded and the
679+ # search was looking for the wrong name.
680+ #
681+ # `$src` is a FRESH clone each run, so `target/` holds exactly what
682+ # this step just built; `-printf` would be the safer form on a cached
683+ # tree and is a GNU extension this must not use.
684+ built=$(find "$src/target" -type f \
685+ \( -name mcpp -o -name mcpp.exe \) | head -1)
668686 [ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }
669687 echo "$(cd "$(dirname "$built")" && pwd)" >> "$GITHUB_PATH"
670688 # ⚠️ Reported, because a PATH entry that does not win looks exactly
0 commit comments