Skip to content

Phase 5.5E4b repository inventory, package mirrors, qualification mir… #62

Phase 5.5E4b repository inventory, package mirrors, qualification mir…

Phase 5.5E4b repository inventory, package mirrors, qualification mir… #62

# Mandatory hosted Windows MSVC qualification (Phase 5.5 D4d).
#
# The authoritative Windows receipt for BatPak is x86_64-pc-windows-msvc:
# compile, link, run, test, source binding, artifact binding. Local machines
# hold only supplemental GNU receipts and never install MSVC Build Tools; this
# hosted runner carries link.exe and the Windows SDK.
#
# A repository-caused failure here blocks Phase 6. A runner-infrastructure
# failure is evidence of an unavailable runner, never converted into a pass.
name: msvc-qualification
on:
push:
branches: [cleanroom, main]
workflow_dispatch:
jobs:
qualify:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: toolchain evidence
shell: pwsh
run: |
rustc -vV
python --version
if ((rustc -vV | Select-String "host:").ToString() -notmatch "x86_64-pc-windows-msvc") {
Write-Error "runner host triple is not x86_64-pc-windows-msvc"
exit 1
}
# The four gates, in canonical order, against the exact checked-out tree.
# selftest's Tier 0 receipts compile, link, and RUN seedcheck,
# materialize, and the seedcheck --test harness on the MSVC host triple,
# artifact-bound and source-bound; the law fixtures exercise the
# compile-fail refusals through the same toolchain.
- name: project --check
run: python bootstrap/project.py --check
- name: audit
run: python bootstrap/audit.py
- name: freeze --check
run: python bootstrap/freeze.py --check
# One run: the suite must pass AND every receipt in the canonical Tier 0
# denominator (REQUIRED_TIER0_RECEIPTS in selftest.py) must be executed,
# passed, artifact-bound where the receipt binds an artifact, and bound
# to the MSVC triple. The denominator lives in ONE place — selftest —
# and --require-receipts turns any unearned or misbound receipt into a
# nonzero exit, so this lane cannot stay green when a receipt disappears,
# never executes, or falls back to another target. The prior shape — a
# PowerShell loop over a copied three-receipt list — went green while
# tier0-law-fixtures and tier0-spec-tests were never required at all.
- name: selftest (Tier 0 receipts on MSVC)
run: python bootstrap/selftest.py --require-receipts x86_64-pc-windows-msvc