perf(moe): wire qwen3_next fused decode-MoE (qwen3.5/3.6) (#268 step 3a) #472
Workflow file for this run
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
| # 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 | |