6161 cd hello_gcc
6262 mcpp run
6363
64+ # Template packages exercise the sha256-pinned mcpp-index fetch
65+ # path (user report: `mcpp new ... --template imgui` failed with
66+ # fetch 'imgui@0.0.6' exit 1 on hosts without a sha256sum binary).
67+ - name : " Template: mcpp new --template imgui (fetch path)"
68+ run : |
69+ cd "$(mktemp -d)"
70+ mcpp new abc1 --template imgui
71+ test -f abc1/mcpp.toml
72+
6473 - name : " Default: build mcpp"
6574 run : |
6675 mcpp clean
@@ -118,14 +127,9 @@ jobs:
118127 name : macOS fresh install
119128 # macos-14: the support floor (mcpp ≥0.0.50 / xlings ≥0.4.50 ship
120129 # minos=14.0 static-libc++ binaries). A fresh install passing here
121- # is the continuous proof of the macOS 14 floor.
122- # TEMP: macos-15 added to isolate whether the cmdline fetch failure
123- # is macos-14-specific or affects the new stack on any macOS.
124- strategy :
125- fail-fast : false
126- matrix :
127- os : [macos-14, macos-15]
128- runs-on : ${{ matrix.os }}
130+ # is the continuous proof of the macOS 14 floor — and of host-tool
131+ # independence (this image has no sha256sum; macos-15 does).
132+ runs-on : macos-14
129133 timeout-minutes : 30
130134 steps :
131135 - uses : actions/checkout@v4
@@ -136,7 +140,9 @@ jobs:
136140 run : |
137141 # v0.4.50+: first xlings release whose macosx binary runs on
138142 # macOS 14 (older ones carry minos=15 and refuse to start).
139- curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.sh | bash -s v0.4.50
143+ # v0.4.51: in-process sha256 — required on this image, which
144+ # has no sha256sum binary (pinned fetches failed before).
145+ curl -fsSL https://raw.githubusercontent.com/openxlings/xlings/main/tools/other/quick_install.sh | bash -s v0.4.51
140146 echo "$HOME/.xlings/subos/current/bin" >> "$GITHUB_PATH"
141147
142148 - name : Install mcpp and config mirror
@@ -159,26 +165,15 @@ jobs:
159165 cd hello_mac
160166 mcpp run
161167
162- # TEMPORARY forensics — mcpplibs.cmdline fetch dies at 0 B on
163- # macos-14 (R5/R6) while linux passes the same step. Hypothesis:
164- # the xlings 0.4.50 adaptive mirror (sha256-pinned URLs may try a
165- # third-party mirror BEFORE the author URL) picks a dead mirror
166- # host on this runner. Probe A = raw connectivity control,
167- # B = exact failing flow (control), C = adaptive mirror off.
168- - name : " Debug: cmdline fetch forensics (temporary)"
168+ # Template packages exercise the sha256-pinned mcpp-index fetch
169+ # path — this is what broke on hosts without a sha256sum binary
170+ # (stock macOS / bare Windows) before xlings 0.4.51 hashed
171+ # in-process.
172+ - name : " Template: mcpp new --template imgui (fetch path)"
169173 run : |
170- echo "=== probe D: failing flow, mcpp --verbose ==="
171- mcpp clean
172- mcpp run --verbose 2>&1 | tail -60 || true
173- echo "=== probe E: xlings direct install from the mcpp sandbox ==="
174- SANDBOX_XLINGS=$(find "$HOME/.mcpp" -name xlings -type f 2>/dev/null | head -1)
175- echo "sandbox xlings: $SANDBOX_XLINGS"
176- env XLINGS_HOME="$HOME/.mcpp/registry" "$SANDBOX_XLINGS" \
177- install mcpplibs.cmdline@0.0.1 -y --verbose 2>&1 | tail -40 || true
178- echo "=== probe F: any xlings/mcpp logs ==="
179- find "$HOME/.mcpp" -name '*.log' -newer /tmp -mmin -10 2>/dev/null | head -5
180- for f in $(find "$HOME/.mcpp" "$HOME/.xlings" -name '*.log' -mmin -10 2>/dev/null | head -3); do
181- echo "--- $f"; tail -30 "$f"; done
174+ cd "$(mktemp -d)"
175+ mcpp new abc1 --template imgui
176+ test -f abc1/mcpp.toml
182177
183178 - name : " LLVM: build mcpp"
184179 run : |
@@ -227,6 +222,18 @@ jobs:
227222 Set-Location hello_win
228223 mcpp run
229224
225+ # Template packages exercise the sha256-pinned mcpp-index fetch
226+ # path (user report: `mcpp new abc1 --template imgui` failed with
227+ # fetch 'imgui@0.0.6' exit 1 on bare Windows — no sha256sum binary
228+ # outside git-bash; fixed by xlings 0.4.51 in-process hashing).
229+ - name : " Template: mcpp new --template imgui (fetch path)"
230+ shell : pwsh
231+ run : |
232+ $tmp = New-TemporaryFile | ForEach-Object { Remove-Item $_; New-Item -ItemType Directory -Path $_ }
233+ Set-Location $tmp
234+ mcpp new abc1 --template imgui
235+ if (!(Test-Path abc1/mcpp.toml)) { exit 1 }
236+
230237 - name : " LLVM: build mcpp"
231238 shell : pwsh
232239 run : |
0 commit comments