Add minimal CI workflow for the mesh-llm fork - #5
Merged
Conversation
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 (de21992 → e88186e) 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.
i386
approved these changes
Apr 17, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
.github/workflows/mesh-ci.yml— a small, dedicated CI workflow for this fork.It runs on every push to
masterand 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_SHA→e88186e78) shipped amoe-split.cppthat didn't compile. The bad merge (de21992e6) had no textual conflict but produced code that references an undeclaredn_tensors. It slipped through because:build.ymlhas path filters that can skip the entire build matrix for small changes.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:
cmakewith these flags +cmake --build --target rpc-server llama-server llama-moe-analyze llama-moe-splitsucceeds on thecodex/fix-moe-split-n-tensorsbranch.master(the bug this would have caught).