Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# CI Orchestrator — tiered fail-fast pipeline
#
# Calls the per-crate workflows in dependency tiers so that a failure in a
# leaf crate (tier 0) cancels all downstream jobs immediately instead of
# letting 18 jobs run for 20 minutes.
#
# Tier structure follows the Cargo workspace dependency graph:
#
# Tier 0 (leaf crates): models, core, boundary
# Tier 1 (substrate): compute, compute-cuda, compute-vulkan
# Tier 2 (engine): inference, vindex
# Tier 3 (API layer): kv, lql
# Tier 4 (applications): server, cli, shannon-verify
#
# Within each tier, all jobs run in parallel. A failure in any tier skips
# all subsequent tiers. Coverage jobs (where present) run in the same tier
# as their crate's test job via needs.
#
# The per-crate workflows still retain their own push/PR triggers with path
# filters, so a change touching only one crate still runs just that one
# workflow without the full pipeline. This orchestrator fires on every PR
# and on every push to main to provide the fail-fast gate.

name: ci

on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch: {}

jobs:
# ──────────────────────────────────────────────────────────────
# Tier 0 — leaf crates (everything depends on these transitively)
# ──────────────────────────────────────────────────────────────
models:
name: "T0 · models"
uses: ./.github/workflows/larql-models.yml

core:
name: "T0 · core"
uses: ./.github/workflows/larql-core.yml

boundary:
name: "T0 · boundary"
uses: ./.github/workflows/larql-boundary.yml

# ──────────────────────────────────────────────────────────────
# Tier 1 — substrate (depends on tier 0)
# ──────────────────────────────────────────────────────────────
compute:
name: "T1 · compute"
needs: [models]
uses: ./.github/workflows/larql-compute.yml

compute-cuda:
name: "T1 · compute-cuda"
needs: [models]
uses: ./.github/workflows/larql-compute-cuda.yml

compute-vulkan:
name: "T1 · compute-vulkan"
needs: [models]
uses: ./.github/workflows/larql-compute-vulkan.yml

# ──────────────────────────────────────────────────────────────
# Tier 2 — engine (depends on tier 1)
# ──────────────────────────────────────────────────────────────
inference:
name: "T2 · inference"
needs: [compute]
uses: ./.github/workflows/larql-inference.yml

vindex:
name: "T2 · vindex"
needs: [compute]
uses: ./.github/workflows/larql-vindex.yml

# ──────────────────────────────────────────────────────────────
# Tier 3 — API layer (depends on tier 2)
# ──────────────────────────────────────────────────────────────
kv:
name: "T3 · kv"
needs: [inference, vindex]
uses: ./.github/workflows/larql-kv.yml

lql:
name: "T3 · lql"
needs: [inference, vindex]
uses: ./.github/workflows/larql-lql.yml

# ──────────────────────────────────────────────────────────────
# Tier 4 — applications (depends on tier 3)
# ──────────────────────────────────────────────────────────────
server:
name: "T4 · server"
needs: [inference, vindex]
uses: ./.github/workflows/larql-server.yml

cli:
name: "T4 · cli"
needs: [kv, lql]
uses: ./.github/workflows/larql-cli.yml

shannon-verify:
name: "T4 · shannon-verify"
needs: [cli]
uses: ./.github/workflows/shannon-verify.yml
15 changes: 1 addition & 14 deletions .github/workflows/larql-boundary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,7 @@
name: larql-boundary

on:
push:
branches: [main]
paths:
- 'crates/larql-boundary/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/larql-boundary.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-boundary/**'
- 'Cargo.toml'
- 'Cargo.lock'
- '.github/workflows/larql-boundary.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
27 changes: 1 addition & 26 deletions .github/workflows/larql-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,32 +12,7 @@
name: larql-cli

on:
push:
branches: [main]
paths:
- 'crates/larql-cli/**'
- 'crates/larql-lql/**'
- 'crates/larql-kv/**'
- 'crates/larql-vindex/**'
- 'crates/larql-models/**'
- 'crates/larql-inference/src/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-cli.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-cli/**'
- 'crates/larql-lql/**'
- 'crates/larql-kv/**'
- 'crates/larql-vindex/**'
- 'crates/larql-models/**'
- 'crates/larql-inference/src/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-cli.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
23 changes: 1 addition & 22 deletions .github/workflows/larql-compute-cuda.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,28 +13,7 @@
name: larql-compute-cuda

on:
push:
branches: [main]
paths:
- crates/larql-compute-cuda/**
- crates/larql-compute/**
- crates/larql-models/**
- crates/larql-vindex/**
- crates/larql-inference/**
- Cargo.toml
- Cargo.lock
- .github/workflows/larql-compute-cuda.yml
pull_request:
branches: [main]
paths:
- crates/larql-compute-cuda/**
- crates/larql-compute/**
- crates/larql-models/**
- crates/larql-vindex/**
- crates/larql-inference/**
- Cargo.toml
- Cargo.lock
- .github/workflows/larql-compute-cuda.yml
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
23 changes: 1 addition & 22 deletions .github/workflows/larql-compute-vulkan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,28 +11,7 @@
name: larql-compute-vulkan

on:
push:
branches: [main]
paths:
- crates/larql-compute-vulkan/**
- crates/larql-compute/**
- crates/larql-models/**
- crates/larql-vindex/**
- crates/larql-inference/**
- Cargo.toml
- Cargo.lock
- .github/workflows/larql-compute-vulkan.yml
pull_request:
branches: [main]
paths:
- crates/larql-compute-vulkan/**
- crates/larql-compute/**
- crates/larql-models/**
- crates/larql-vindex/**
- crates/larql-inference/**
- Cargo.toml
- Cargo.lock
- .github/workflows/larql-compute-vulkan.yml
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
19 changes: 1 addition & 18 deletions .github/workflows/larql-compute.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,7 @@
name: larql-compute

on:
push:
branches: [main]
paths:
- 'crates/larql-compute/**'
- 'crates/larql-models/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-compute.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-compute/**'
- 'crates/larql-models/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-compute.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
17 changes: 1 addition & 16 deletions .github/workflows/larql-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,7 @@
name: larql-core

on:
push:
branches: [main]
paths:
- 'crates/larql-core/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-core.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-core/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-core.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
25 changes: 1 addition & 24 deletions .github/workflows/larql-inference.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,30 +13,7 @@
name: larql-inference

on:
push:
branches: [main]
paths:
- 'crates/larql-inference/**'
- 'crates/larql-compute/**'
- 'crates/larql-vindex/**'
- 'crates/larql-models/**'
- 'crates/larql-router-protocol/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-inference.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-inference/**'
- 'crates/larql-compute/**'
- 'crates/larql-vindex/**'
- 'crates/larql-models/**'
- 'crates/larql-router-protocol/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-inference.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
33 changes: 1 addition & 32 deletions .github/workflows/larql-kv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,38 +9,7 @@
name: larql-kv

on:
push:
branches: [main]
paths:
- 'crates/larql-kv/**'
- 'crates/larql-inference/src/test_utils.rs'
- 'crates/larql-inference/src/forward/**'
- 'crates/larql-inference/src/attention/**'
- 'crates/larql-inference/src/ffn/**'
- 'crates/larql-inference/src/residual.rs'
- 'crates/larql-inference/src/vindex/**'
- 'crates/larql-inference/src/model.rs'
- 'crates/larql-inference/src/layer_graph/pipeline_layer.rs'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-kv.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-kv/**'
- 'crates/larql-inference/src/test_utils.rs'
- 'crates/larql-inference/src/forward/**'
- 'crates/larql-inference/src/attention/**'
- 'crates/larql-inference/src/ffn/**'
- 'crates/larql-inference/src/residual.rs'
- 'crates/larql-inference/src/vindex/**'
- 'crates/larql-inference/src/model.rs'
- 'crates/larql-inference/src/layer_graph/pipeline_layer.rs'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-kv.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
25 changes: 1 addition & 24 deletions .github/workflows/larql-lql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,7 @@
name: larql-lql

on:
push:
branches: [main]
paths:
- 'crates/larql-lql/**'
- 'crates/larql-core/**'
- 'crates/larql-vindex/**'
- 'crates/larql-models/**'
- 'crates/larql-inference/src/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-lql.yml'
pull_request:
branches: [main]
paths:
- 'crates/larql-lql/**'
- 'crates/larql-core/**'
- 'crates/larql-vindex/**'
- 'crates/larql-models/**'
- 'crates/larql-inference/src/**'
- 'Cargo.toml'
- 'Cargo.lock'
- 'Makefile'
- '.github/workflows/larql-lql.yml'
workflow_call: {}
workflow_dispatch: {}

env:
Expand Down
Loading