Skip to content
Open
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
46 changes: 42 additions & 4 deletions .github/workflows/devlab-strix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,21 @@ on:
default: main
type: string
job:
description: "probe = report the runner environment only; build = probe + native strix-hip build"
description: "probe = env only; build = probe + native build; validate = build + unit slice + smoke; eval = model serve gates on a home-runner box"
required: true
default: probe
type: choice
options: [probe, build]
options: [probe, build, validate, eval]
model:
description: "eval only: model id to serve"
required: false
default: "nvidia/Qwen3.8-27B-NVFP4"
type: string
legs:
description: "eval only: space-separated gate legs (subtest identity nemotron st995 perf)"
required: false
default: "identity nemotron"
type: string

permissions:
contents: read
Expand Down Expand Up @@ -100,7 +110,7 @@ jobs:
} | tee -a "$GITHUB_STEP_SUMMARY"

- name: Rust toolchain (cached under the tool cache)
if: inputs.job == 'build'
if: inputs.job == 'build' || inputs.job == 'validate'
shell: bash
run: |
set -euo pipefail
Expand All @@ -116,11 +126,39 @@ jobs:
echo "$CARGO_HOME/bin" >> "$GITHUB_PATH"

- name: Native strix-hip build (all models)
if: inputs.job == 'build'
if: inputs.job == 'build' || inputs.job == 'validate'
shell: bash
run: |
set -euo pipefail
cargo --version
start=$(date +%s)
./build-amd.sh
echo "build: $(( $(date +%s) - start ))s, binary $(sha256sum target/release/spark | cut -c1-16)" | tee -a "$GITHUB_STEP_SUMMARY"

- name: Validate (unit slice + smoke)
if: inputs.job == 'validate'
shell: bash
run: |
set -euo pipefail
./target/release/spark --version | tee -a "$GITHUB_STEP_SUMMARY"
ATLAS_SKIP_BUILD=1 cargo test -p atlas-kernels --lib 2>&1 | tail -5 | tee -a "$GITHUB_STEP_SUMMARY"
echo "validate: PASS" | tee -a "$GITHUB_STEP_SUMMARY"

eval:
name: Home-box eval gates (${{ inputs.model }})
needs: authorize
if: inputs.job == 'eval'
runs-on: [self-hosted, atlas-home]
timeout-minutes: 720
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
ref: ${{ inputs.ref }}
persist-credentials: false
- name: Submit model gates to the box queue
shell: bash
run: |
set -euo pipefail
echo "ref=${{ inputs.ref }} model=${{ inputs.model }} legs=${{ inputs.legs }}"
~/jobqueue/bin/qctl sub ci-eval-${{ github.run_id }} --file ~/jobqueue/staged/gate.sh || { echo "no qctl gate.sh on this box"; exit 1; }
echo "queued: leg scripts drive the box serially; verdicts land in ~/ovn-out" | tee -a "$GITHUB_STEP_SUMMARY"
Loading