mirror of
https://github.com/Mesh-LLM/mesh-llm.git
synced 2026-08-08 22:23:19 -04:00
* ci: compose reusable products and add Depot routing * ci: configure job-local sccache storage * fix: harden Windows artifact composition * test: assert pinned nightly artifact action * ci: allow superseded SDK smokes to cancel * docs: document cancellable CI fan-in gates * ci: harden composable build graph and metrics * fix(ci): install actionlint from verified release * fix(installer): normalize runtime digest paths * fix(ci): align installer contract output * docs(ci): ground runner image migration plan * ci: route trusted ARM lanes through Depot selector * ci: enable remote sccache for fast lanes * fix(ci): await remote sccache writes * fix(ci): align sccache policy contract * refactor(ci): reuse typed SDK and static ABI inputs * fix(ci): reuse configured sccache server * fix(ci): harden exact native cache reuse * fix(ci): make PR compiler cache read-only * fix(ci): isolate pull request compiler writes * feat(ci): produce immutable Node addon artifacts * fix(ci): restrict Depot canary to main * fix(ci): isolate Depot canary cache keys
84 lines
2.5 KiB
YAML
84 lines
2.5 KiB
YAML
name: Reusable Scripted Binary Smoke Tests
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
artifact_name:
|
|
required: true
|
|
type: string
|
|
artifact_path:
|
|
required: false
|
|
default: ci-artifacts/linux
|
|
type: string
|
|
binary_name:
|
|
required: false
|
|
default: mesh-llm
|
|
type: string
|
|
staged_binary_path:
|
|
required: false
|
|
default: target/debug/mesh-llm
|
|
type: string
|
|
model_url:
|
|
required: false
|
|
default: https://huggingface.co/unsloth/SmolLM2-135M-Instruct-GGUF/resolve/9e6855bc4be717fca1ef21360a1db4b29d5c559a/SmolLM2-135M-Instruct-Q8_0.gguf
|
|
type: string
|
|
model_file:
|
|
required: false
|
|
default: SmolLM2-135M-Instruct-Q8_0.gguf
|
|
type: string
|
|
model_cache_scope:
|
|
required: true
|
|
type: string
|
|
cache_key_prefix:
|
|
required: false
|
|
default: ''
|
|
type: string
|
|
smoke_script:
|
|
required: true
|
|
type: string
|
|
timeout_minutes:
|
|
required: false
|
|
default: 20
|
|
type: number
|
|
secrets:
|
|
HF_TOKEN:
|
|
required: false
|
|
|
|
env:
|
|
MODEL_URL: ${{ inputs.model_url }}
|
|
MODEL_FILE: ${{ inputs.model_file }}
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
scripted_binary_smoke:
|
|
name: Scripted Binary Smoke
|
|
# Model credentials stay on an isolated GitHub-hosted runner.
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: ${{ inputs.timeout_minutes }}
|
|
env:
|
|
HF_TOKEN: ${{ secrets.HF_TOKEN }}
|
|
HUGGING_FACE_HUB_TOKEN: ${{ secrets.HF_TOKEN }}
|
|
steps:
|
|
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Install smoke dependencies
|
|
run: sudo apt-get update && sudo apt-get install -y curl jq lsof
|
|
|
|
- uses: ./.github/actions/restore-smoke-inputs
|
|
with:
|
|
artifact_name: ${{ inputs.artifact_name }}
|
|
artifact_path: ${{ inputs.artifact_path }}
|
|
binary_name: ${{ inputs.binary_name }}
|
|
staged_binary_path: ${{ inputs.staged_binary_path }}
|
|
model_url: ${{ inputs.model_url }}
|
|
model_file: ${{ inputs.model_file }}
|
|
model_cache_scope: ${{ inputs.model_cache_scope }}
|
|
cache_key_prefix: ${{ inputs.cache_key_prefix }}
|
|
save_model_cache: ${{ github.ref == 'refs/heads/main' }}
|
|
|
|
- name: Run scripted smoke
|
|
run: ${{ inputs.smoke_script }} "${{ inputs.staged_binary_path }}" "${{ inputs.artifact_path }}" "$HOME/.models/${{ inputs.model_file }}"
|