unsloth/.github/workflows
danielhanchen 83c3dba5ab Close the free headroom in the clean-machine simulation
Assert arch and signature on every downloaded Mach-O. This is the one genuine
gap the simulation had: Rosetta 2 is preinstalled on hosted runners and absent
from a factory-fresh Mac, so an x86_64-only llama.cpp, whisper.cpp, Node or uv
payload runs green here and dies with "bad CPU type in executable" for the
user. llama-server launching under `assert-llama-loads.sh` does not rule that
out, because Rosetta makes it launch. The new `macho` check reads `file -b`
(`lipo` is an xcrun shim and is gone after masking, as the desktop lane already
notes) and keys the expected arch off `uname -m`, so macos-15-intel expects
x86_64. It also requires at least an ad-hoc signature on arm64, which closes
the AMFI "Killed: 9" class that uv has already been bitten by; the check is
skipped on x86_64, where unsigned code loads fine and so is not the same
defect. It fails when the scan finds nothing, since an empty scan reads exactly
like a clean one.

Make absence real rather than PATH-hidden. uv probes well-known interpreter
locations and the framework loader ignores PATH entirely, so hiding the
toolcache only hid it from `command -v`. Empty /usr/local (it EXISTS on a
factory-fresh Mac as a SIP-exempt firmlink, and is empty; it is /usr/local/bin
that is absent, so the directory itself stays), move the hosted toolcache and
/Library/Frameworks/Python.framework aside, and clear the developer dotdirs and
caches. A populated uv or pip cache can also satisfy a resolution that would
fail on a user's machine. Every removal goes through --remove and is recorded
in the generated restore.sh, guarded so a path the install recreated is not
buried inside its own restore.

Unset CI, GITHUB_* and RUNNER_* for the installer process only. An installer
branching on CI=true is a hidden dependency no consumer exercises. Scoped to
the child so the step's own $GITHUB_OUTPUT still resolves.

Record spctl --status and csrutil status. Neither is documented for these
images and both change what a binary is allowed to do.
2026-07-29 01:56:34 +00:00
..
clean-machine-install-ci.yml Close the free headroom in the clean-machine simulation 2026-07-29 01:56:34 +00:00
consolidated-tests-ci.yml avoid Hub metadata probe when loading tokenizers with local_files_only (#7482) 2026-07-27 05:59:48 -07:00
cross-platform-parity-ci.yml Installer: restore interrupted updates and clean stale rollback environments (#7342) 2026-07-23 01:29:53 -07:00
desktop-app-clean-machine-ci.yml Skip the desktop jobs on fork PRs instead of failing them 2026-07-29 01:11:10 +00:00
lint-ci.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
local-agent-guides-ci.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
lockfile-audit.yml CI: pin lockfile-audit actions to commit SHAs (#6902) 2026-07-06 07:11:33 -07:00
mlx-ci.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
notebooks-ci.yml CI: add PyPI extra-index to CPU torch installs to fix sympy resolution (#6660) 2026-06-29 17:35:26 -03:00
ossf.yml Create ossf.yml (#6952) 2026-07-07 17:10:01 -07:00
release-desktop.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
security-audit.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
stale.yml CI: scope GITHUB_TOKEN permissions, add MLX CI, unblock ~60 skipped tests (#5312) 2026-05-11 03:19:13 -07:00
studio-api-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-backend-ci.yml AMD: CI coverage for recent fixes, plus three wrong gfx ids (#7431) 2026-07-25 18:58:02 -05:00
studio-export-capability-ci.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-frontend-ci.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-inference-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-load-orchestrator-ci.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-mac-api-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-mac-inference-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-mac-install-matrix.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-mac-ui-smoke.yml Studio: clarify tool permission controls (#7181) 2026-07-20 09:55:39 -03:00
studio-mac-update-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-tauri-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-ui-smoke.yml Studio: drive UI font size through a typography scale instead of the root font size (#7359) 2026-07-23 01:26:56 -07:00
studio-update-smoke.yml Studio: detect an interrupted dependency install instead of launching a backend that cannot import (#7492) 2026-07-28 10:57:20 +02:00
studio-windows-api-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-windows-inference-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
studio-windows-ui-smoke.yml Studio: clarify tool permission controls (#7181) 2026-07-20 09:55:39 -03:00
studio-windows-update-smoke.yml Replace standalone Studio wording with Unsloth (#7221) 2026-07-19 00:47:04 -07:00
version-compat-ci.yml version-compat CI: fake CPU training runs for SFT/GRPO/DPO (#6965) 2026-07-08 04:06:28 -07:00
wheel-smoke.yml Studio: detect an interrupted dependency install instead of launching a backend that cannot import (#7492) 2026-07-28 10:57:20 +02:00