mirror of
https://github.com/elder-plinius/OBLITERATUS.git
synced 2026-08-29 22:20:36 +02:00
feat: add Jetson contributor validation path
This commit is contained in:
@@ -23,6 +23,10 @@ on:
|
||||
description: Run CUDA and bitsandbytes on the labeled self-hosted runner
|
||||
type: boolean
|
||||
default: false
|
||||
run_jetson:
|
||||
description: Run Jetson CUDA on the trusted labeled physical runner
|
||||
type: boolean
|
||||
default: false
|
||||
run_mps:
|
||||
description: Run MPS on the labeled Apple Silicon runner
|
||||
type: boolean
|
||||
@@ -239,7 +243,7 @@ jobs:
|
||||
run: |
|
||||
python -m pip install "uv==${UV_VERSION}"
|
||||
UV_PROJECT_ENVIRONMENT="$CONDITIONAL_ENV" \
|
||||
uv sync --locked --no-default-groups --extra dev --no-editable
|
||||
uv sync --locked --no-default-groups --extra dev --extra quantization --no-editable
|
||||
CUDA_TORCH_VERSION="$("$CONDITIONAL_ENV/bin/python" -c \
|
||||
'import torch; print(torch.__version__.split("+", 1)[0])')"
|
||||
UV_TORCH_BACKEND=cu130 uv pip install \
|
||||
@@ -264,6 +268,52 @@ jobs:
|
||||
if-no-files-found: error
|
||||
retention-days: 30
|
||||
|
||||
jetson:
|
||||
name: NVIDIA Jetson runtime
|
||||
needs: policy
|
||||
if: github.event_name == 'workflow_dispatch' && inputs.run_jetson
|
||||
runs-on: [self-hosted, linux, ARM64, jetson]
|
||||
timeout-minutes: 45
|
||||
env:
|
||||
JETSON_ENV: /tmp/obliteratus-jetson-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
JETSON_TOOLS: /tmp/obliteratus-jetson-tools-${{ github.run_id }}-${{ github.run_attempt }}
|
||||
steps:
|
||||
- name: Check out trusted candidate
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
- name: Install pinned bootstrap tooling outside the JetPack runtime
|
||||
run: |
|
||||
python3 -m venv "$JETSON_TOOLS"
|
||||
"$JETSON_TOOLS/bin/python" -m pip install "uv==${UV_VERSION}"
|
||||
- name: Preserve JetPack PyTorch and install OBLITERATUS
|
||||
run: >-
|
||||
python3 scripts/setup_jetson.py
|
||||
--python python3
|
||||
--uv-python "$JETSON_TOOLS/bin/python"
|
||||
--venv "$JETSON_ENV"
|
||||
- name: Run physical Jetson CUDA probe
|
||||
run: >-
|
||||
"$JETSON_ENV/bin/python" scripts/run_conditional_gate.py jetson-runtime
|
||||
- name: Collect sanitized Jetson evidence
|
||||
if: always()
|
||||
run: |
|
||||
JETSON_PYTHON=python3
|
||||
if [ -x "$JETSON_ENV/bin/python" ]; then
|
||||
JETSON_PYTHON="$JETSON_ENV/bin/python"
|
||||
fi
|
||||
"$JETSON_PYTHON" scripts/jetson_support.py \
|
||||
--check \
|
||||
--gate-evidence conditional-evidence/jetson-runtime.json \
|
||||
--output conditional-evidence/jetson-report.json \
|
||||
--issue-body conditional-evidence/jetson-issue.md
|
||||
- name: Upload Jetson evidence
|
||||
if: always()
|
||||
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
||||
with:
|
||||
name: conditional-jetson-${{ github.run_attempt }}
|
||||
path: conditional-evidence/
|
||||
if-no-files-found: error
|
||||
retention-days: 30
|
||||
|
||||
mps:
|
||||
name: Apple MPS runtime
|
||||
needs: policy
|
||||
@@ -393,20 +443,22 @@ jobs:
|
||||
summary:
|
||||
name: Conditional result and freshness summary
|
||||
if: always()
|
||||
needs: [policy, model_runtime, network_services, operator_ui, cuda, mps, mlx, remote]
|
||||
needs: [policy, model_runtime, network_services, operator_ui, cuda, jetson, mps, mlx, remote]
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 5
|
||||
env:
|
||||
CONDITIONAL_RESULTS: >-
|
||||
{"policy":"${{ needs.policy.result }}","model_runtime":"${{ needs.model_runtime.result }}",
|
||||
"network_services":"${{ needs.network_services.result }}","operator_ui":"${{ needs.operator_ui.result }}",
|
||||
"cuda":"${{ needs.cuda.result }}","mps":"${{ needs.mps.result }}","mlx":"${{ needs.mlx.result }}",
|
||||
"cuda":"${{ needs.cuda.result }}","jetson":"${{ needs.jetson.result }}",
|
||||
"mps":"${{ needs.mps.result }}","mlx":"${{ needs.mlx.result }}",
|
||||
"remote":"${{ needs.remote.result }}"}
|
||||
CONDITIONAL_SELECTED: >-
|
||||
{"model_runtime":${{ github.event_name != 'workflow_dispatch' || inputs.run_model }},
|
||||
"network_services":${{ github.event_name != 'workflow_dispatch' || inputs.run_network }},
|
||||
"operator_ui":${{ github.event_name != 'workflow_dispatch' || inputs.run_ui }},
|
||||
"cuda":${{ (github.event_name == 'workflow_dispatch' && inputs.run_cuda) || (github.event_name != 'workflow_dispatch' && vars.ENABLE_CUDA_GATE == 'true') }},
|
||||
"jetson":${{ github.event_name == 'workflow_dispatch' && inputs.run_jetson }},
|
||||
"mps":${{ (github.event_name == 'workflow_dispatch' && inputs.run_mps) || (github.event_name != 'workflow_dispatch' && vars.ENABLE_MPS_GATE == 'true') }},
|
||||
"mlx":${{ (github.event_name == 'workflow_dispatch' && inputs.run_mlx) || (github.event_name != 'workflow_dispatch' && vars.ENABLE_MLX_GATE == 'true') }},
|
||||
"remote":${{ (github.event_name == 'workflow_dispatch' && inputs.run_remote) || (github.event_name != 'workflow_dispatch' && vars.ENABLE_REMOTE_GATE == 'true') }}}
|
||||
|
||||
Reference in New Issue
Block a user