probe: use the store binary outside the checkout #3
Workflow file for this run
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
| name: probe - released engine reads an MSVC-row sysroot | |
| # Temporary measurement branch. It records what the released mcpp does with the | |
| # spellings 2026.9.24.1 introduces for `[target.x86_64-windows-msvc].sysroot`, | |
| # so the compatibility note in the changelog states a measurement. | |
| on: | |
| push: | |
| branches: [probe/old-engine-msvc-sysroot] | |
| jobs: | |
| probe: | |
| runs-on: windows-latest | |
| timeout-minutes: 60 | |
| env: | |
| MCPP_HOME: C:\Users\runneradmin\.mcpp | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/bootstrap-mcpp | |
| - name: Four manifests, one released engine | |
| shell: bash | |
| run: | | |
| export MCPP_VENDORED_XLINGS="$XLINGS_BIN" | |
| # $MCPP is the project-scoped shim, which resolves only inside this | |
| # checkout; the probes run elsewhere, so they use the store binary. | |
| MCPP=$(find "$(cygpath -u "$USERPROFILE")/.xlings/data/xpkgs/xim-x-mcpp/2026.9.21.3" -name mcpp.exe | head -1) | |
| echo "store binary: $MCPP" | |
| "$MCPP" --version | |
| "$MCPP" self config --mirror GLOBAL | |
| reg="$(cygpath -u "$MCPP_HOME")/registry/data/xpkgs" | |
| tmp="$(cygpath -u "$RUNNER_TEMP")" | |
| probe() { | |
| local name=$1 value=$2 d="$tmp/p-$1" | |
| rm -rf "$d"; mkdir -p "$d"; cd "$d" | |
| "$MCPP" new hello || { echo "RESULT $name: mcpp new failed"; return 0; } | |
| cd hello | |
| if [ -n "$value" ]; then printf '\n[target.x86_64-windows-msvc]\nsysroot = "%s"\n' "$value" >> mcpp.toml; fi | |
| echo "::group::$name: mcpp.toml"; cat mcpp.toml; echo "::endgroup::" | |
| { ls "$reg" 2>/dev/null || true; } | sort > before.txt | |
| set +e | |
| timeout 1500 "$MCPP" build > build.log 2>&1; rc=$? | |
| set -e | |
| { ls "$reg" 2>/dev/null || true; } | sort > after.txt | |
| echo "RESULT $name: build rc=$rc" | |
| echo "::group::$name: build output"; cat build.log; echo "::endgroup::" | |
| echo "RESULT $name: registry entries added: $(comm -13 before.txt after.txt | tr '\n' ' ')" | |
| echo "RESULT $name: msvc/sdk payloads present: $(grep -i -E 'msvc|windows-sdk' after.txt | tr '\n' ' ')" | |
| for f in $(find target -name resolution.json 2>/dev/null); do | |
| echo "::group::$name: $f"; cat "$f"; echo "::endgroup::" | |
| done | |
| if [ "$rc" -eq 0 ]; then | |
| "$MCPP" run > run.log 2>&1 && echo "RESULT $name: run ok: $(tail -1 run.log)" \ | |
| || echo "RESULT $name: run failed" | |
| fi | |
| { grep -E -i 'sysroot|xpkg|msvc' build.log || true; } | head -8 | sed "s/^/RESULT $name: log: /" | |
| } | |
| probe baseline "" | |
| probe system 'msvc@system' | |
| probe pinned 'msvc@14.44.35207' | |
| probe xim 'xim:msvc@14.44.35207' |