ci: build & push SMCP image from swiss-rockets#4
Merged
Conversation
GitHub Actions workflow building deploy/Dockerfile (compact-mode SMCP image) -> registry.squirro.com/mcp/tooluniverse. Modeled on the Squirro house build workflow; three deltas (branch swiss-rockets not main, image-name override, deploy/Dockerfile) recorded in ADR-0010.
68dc296 to
0b990f9
Compare
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/build-push-smcp.yml— builds the SMCP (compact-mode ToolUniverse-as-MCP) image fromdeploy/Dockerfileand pushes toregistry.squirro.com/mcp/tooluniverse. Modeled on the house build workflow, kept as close as possible (same SHA pins, secret names, tag strategy, step order).Triggers
swiss-rocketssha-<short>,swiss-rockets)v*.*.*X.Y.Z,X.Y)swiss-rocketsmainThree deltas from the house template
swiss-rockets, notmain—mainis a manual fork-sync mirror ofmims-harvard:main(manual ≠ reviewed); it must never build a deployable image. Upstream reachesswiss-rocketsonly via a reviewed PR.IMAGE_NAME→mcp/tooluniverse— overridesgithub.repository(=squirro/ToolUniverse, whose uppercase a Harbor path rejects).deploy/Dockerfile, not the root upstream Dockerfile.Needs from the Squirro side
HARBOR_USERNAME/HARBOR_PASSWORD(Harbor robot account).swiss-rockets(PR-only, no direct push) — the trusted-ref assumption rests on this.Deploy-spec (FluxCD/CD half)
registry.squirro.com/mcp/tooluniverse:<sha-… or X.Y.Z>— pin immutable--transport http --host 0.0.0.0 --port 8000):8000initialDelaySeconds ≈ 300(compact mode loads ~2,278 tools at startup)Tool_RAGexcluded so the 1.5B embedding model never loads — don't budget for it/root/.tooluniverse(bulk TSVs, NCBI cache, downloaded refs)OPENAI_API_KEYrequired (find_tools/Tool_Finder_LLMis OpenAI-backed); per-tool-family keys optionalNo scan/SBOM step in CI by design — Harbor Trivy (image) + Aikido (deps) cover it.
Open questions
127.0.0.1:8765to the in-cluster Service DNS?