Skip to content

perf(moe): 6-bit/mixed-bit fused decode-MoE; wire dots.llm1 (#268 step 2c) #470

perf(moe): 6-bit/mixed-bit fused decode-MoE; wire dots.llm1 (#268 step 2c)

perf(moe): 6-bit/mixed-bit fused decode-MoE; wire dots.llm1 (#268 step 2c) #470

Workflow file for this run

# PR / push CI for lightweight quality gates. Runs cargo-deny (license /
# advisory) and cargo-fmt on every touched-Rust change so formatting drift and
# license issues are caught at PR time.
#
# Clippy and cargo-test do NOT run in any workflow. They used to run on the
# self-hosted Apple Silicon runner — first here at PR time, then briefly in
# release.yml — and in both cases consumed ~30 min per run, blocking either
# PRs or releases on a shared resource for failures that `make verify`
# reliably catches on the developer's machine in a fraction of the time.
#
# Quality gate lives locally. Pre-push checklist:
# make verify # fmt + clippy(metal,accelerate, -D warnings) + test(release)
# make verify-clean # same, after `cargo clean` — use when clippy's
# # per-crate cache may be hiding a regression
#
# Note on CUDA gating: CUDA verification stays exclusive to release.yml because
# it requires a Linux self-hosted runner (currently only the GB10 node used for
# release builds). Adding a PR-level CUDA gate would double runner cost for
# limited additional safety on PRs that don't touch CUDA-specific code paths.
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
changes:
name: Detect changes
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
outputs:
rust: ${{ steps.filter.outputs.rust }}
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dorny/paths-filter@v4
id: filter
with:
filters: |
rust:
- '**/*.rs'
- '**/Cargo.toml'
- 'Cargo.lock'
- 'deny.toml'
- '.github/workflows/ci.yml'
deny:
name: cargo-deny
needs: changes
if: needs.changes.outputs.rust == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: EmbarkStudios/cargo-deny-action@v2
with:
command: check
log-level: warn
fmt:
name: cargo-fmt
needs: changes
if: needs.changes.outputs.rust == 'true'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@1.93.1
with:
components: rustfmt
- run: cargo fmt --all -- --check
cross-repo-refs:
name: cross-repo refs
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
fetch-depth: 0
# Advisory: lists bare 3+-digit '#NNN' added on this PR so unqualified
# upstream refs (-> org/repo#NNN) and any leaked private-repo numbers are
# caught in review. Does not fail the build (a genuine lablup/mlxcel #N is
# fine); run locally with STRICT=1 to gate. See CONTRIBUTING.md.
- name: Flag unqualified cross-repository references
# Pass the base ref via env (not interpolated into the shell) so a branch
# name can never reach shell parsing; the script reads BASE_REF as input.
env:
BASE_REF: origin/${{ github.base_ref }}
run: python3 scripts/ci/check_cross_repo_refs.py