Skip to content

Add minimal CI workflow for the mesh-llm fork - #5

Merged
michaelneale merged 1 commit into
masterfrom
mesh-ci-workflow
Apr 17, 2026
Merged

Add minimal CI workflow for the mesh-llm fork#5
michaelneale merged 1 commit into
masterfrom
mesh-ci-workflow

Conversation

@michaelneale

Copy link
Copy Markdown

What

Adds .github/workflows/mesh-ci.yml — a small, dedicated CI workflow for this fork.

It runs on every push to master and every PR, with no path filter, and builds the four binaries mesh-llm consumes (rpc-server, llama-server, llama-moe-analyze, llama-moe-split) using the same cmake flags mesh-llm's own CI uses.

One job. Ubuntu 22.04. CPU + RPC only. ~3–5 min on a warm ccache.

Why

A recent fork bump in mesh-llm (LLAMA_CPP_SHAe88186e78) shipped a moe-split.cpp that didn't compile. The bad merge (de21992e6) had no textual conflict but produced code that references an undeclared n_tensors. It slipped through because:

  • Upstream's build.yml has path filters that can skip the entire build matrix for small changes.
  • The mesh-llm-side PR that bumped the SHA also had path filters that skipped its build lanes.
  • Result: no build actually ran for the combined state, and main was broken for days.

This workflow closes that gap on the fork side: every commit builds the mesh-llm-relevant targets, no exceptions.

Suppressing upstream workflows

This file doesn't remove or modify any upstream workflows — it's purely additive, so upstream syncs stay clean.

To stop the ~25 upstream workflows from firing on this fork (they're overkill for our needs and some fail on the fork's runner setup), flip:

Settings → Actions → General → Actions permissions → 'Allow select actions and reusable workflows'

Then whitelist only Mesh-LLM/llama.cpp/.github/workflows/mesh-ci.yml@**.

That's a one-click toggle, survives upstream merges, nothing to maintain in-tree.

Verification

Validated locally:

  • YAML parses clean.
  • cmake with these flags + cmake --build --target rpc-server llama-server llama-moe-analyze llama-moe-split succeeds on the codex/fix-moe-split-n-tensors branch.
  • Same recipe correctly fails on current master (the bug this would have caught).

Minimal Linux CPU build check that runs on every push and PR, with no
path filter. Builds the exact four binaries mesh-llm consumes
(rpc-server, llama-server, llama-moe-analyze, llama-moe-split) with the
same cmake flags mesh-llm uses.

Motivation: upstream's build.yml has path filters that can skip the
entire build matrix for small commits. A bad merge (de21992e88186e)
shipped a non-compiling moe-split.cpp because no build lane actually
ran. This workflow has no path filter, so every commit gets built.

To suppress upstream's ~25 workflows on this fork without touching their
files (keeps upstream syncs clean), flip: Settings → Actions → General →
'Allow select actions and reusable workflows', then whitelist only
mesh-ci.yml.
@michaelneale
michaelneale merged commit a8fee15 into master Apr 17, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants