unsloth/.github/workflows
Daniel Han 2e8c172516 CI(consolidated): expand to runtime patch_* validation, TRL/MLP/hf_utils checks, llama-cli smoke
Following the user's expanded ask, the consolidated job now covers:

Install ladder fixes (resolve run #4 ModuleNotFoundError chain):
- protobuf, sentencepiece, triton, psutil, packaging, tqdm, safetensors,
  datasets, peft, accelerate, trl pinned in the install list. These are
  all transitively pulled by the Bucket-A test files but not by Repo
  tests (CPU)'s --ignore'd directories.
- PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python, PYTHONPATH, and
  UNSLOTH_COMPILE_DISABLE hoisted to job-level env so every step inherits.

New static and runtime checks (the user's expanded ask):
- Step 11 "unsloth/trainer.py + unsloth/models/rl.py against latest pip
  TRL": pip install --upgrade trl, then walk every `from trl import X`
  in both files and confirm hasattr(trl_module, X). Catches TRL API drift.
- Step 12 "unsloth_zoo/tiled_mlp.py against latest pip transformers":
  same pattern against the transformers symbol surface.
- Step 13 "unsloth_zoo/hf_utils.py syntax + import-graph": AST parse +
  list public functions/classes. Surfaces the 7 public helpers
  (dtype_from_config, set_dtype_in_config, set_dtype_in_config_fallback,
  add_dtype_kwargs, get_transformers_model_type, fix_lora_auto_mapping,
  get_auto_processor) so reviewers can see what's covered.
- Step 14 "Runtime checks - invoke every zero-arg patch_*": walks 22
  patch-bearing modules across unsloth + unsloth_zoo, attempts to call
  every patch_* whose required parameters are all defaulted. Locally
  validated 50 of 51 succeed; the lone failure surfaces a real bug
  (unsloth.models._utils.patch_fast_lora -> NameError: name
  'fast_lora_forward' is not defined). Required helpers
  patch_unsloth_smart_gradient_checkpointing (re-exported through
  unsloth/models/_utils.py:138 from unsloth_zoo/gradient_checkpointing.py:906)
  and patch_gradient_accumulation_fix are explicitly verified.
- Step 15 "patch_tiled_mlp on a synthetic MLP module": builds a 2-layer
  FakeModel with gate_proj/up_proj/down_proj surface, calls patch_mlp
  + patch_tiled_mlp, asserts forward output is numerically equivalent
  to pre-patch (locally observed diff = 0.000e+00).
- Step 16 "llama.cpp install + llama-cli --help smoke": downloads the
  latest ggml-org/llama.cpp prebuilt ubuntu-x64 release, extracts,
  installs libgomp1/libcurl4/libssl3, runs llama-cli --help and greps
  for usage sentinel.

Bare-import fixes for unsloth_zoo on a GPU-less runner:
- Clone step uses `pip show unsloth_zoo` (not `import unsloth_zoo` which
  raises NotImplementedError in __init__ via device_type.get_device_type()).
- test_apply_fused_lm_head step preludes torch.cuda.is_available = lambda:
  True before importing unsloth_zoo.compiler, mirroring tests/conftest.py:84-141.
- Summary step prints versions via pip show (unbroken pipe, no SIGPIPE).

Timeout bumped 25 -> 35 minutes for the additional steps.

Locally validated on the workspace_6 host:
- Bucket-A: 15 passed, 1 deselected, 10.1 s
- unsloth_zoo @ main pytest: 172 passed, 2 deselected, 11.2 s
- test_apply_fused_lm_head: OK
- Runtime patch_*: ok=50/51, fail=1 (patch_fast_lora upstream bug)
- Tiled MLP: numerical diff 0.000e+00
2026-05-07 04:47:01 +00:00
..
consolidated-tests-ci.yml CI(consolidated): expand to runtime patch_* validation, TRL/MLP/hf_utils checks, llama-cli smoke 2026-05-07 04:47:01 +00:00
lint-ci.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
mlx-ci.yml ci(mlx): fresh-process reloads + soft-skip GGUF on llama.cpp limitation 2026-05-07 04:12:21 +00:00
release-desktop.yml Fix Studio desktop tray installer and titlebar and bux fixes (#5179) 2026-04-30 08:40:39 -07:00
security-audit.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
stale.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
studio-api-smoke.yml CI(studio): fix 4 real failures surfaced by the new smoke jobs 2026-05-07 04:20:11 +00:00
studio-backend-ci.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00
studio-frontend-ci.yml CI(studio): always-upload artifacts + gate /api/system + path/health plumbing 2026-05-07 04:09:09 +00:00
studio-inference-smoke.yml CI(studio): always-upload artifacts + gate /api/system + path/health plumbing 2026-05-07 04:09:09 +00:00
studio-tauri-smoke.yml CI(studio): always-upload artifacts + gate /api/system + path/health plumbing 2026-05-07 04:09:09 +00:00
studio-ui-smoke.yml CI(ui): add second Playwright job covering Compare/Recipes/Export/Studio/Settings 2026-05-07 04:09:09 +00:00
studio-update-smoke.yml CI(studio): always-upload artifacts + gate /api/system + path/health plumbing 2026-05-07 04:09:09 +00:00
wheel-smoke.yml CI: SHA-pin every action; fix 4 bugs in advisory-audit 2026-05-07 01:12:40 +00:00