Download .github/workflows/ci.yml from elyanlabs/npu-linux-kit: direct link, hf CLI and curl.
- Browser
- Download file 2.23 kB
-
https://huggingface.co/elyanlabs/npu-linux-kit/resolve/main/.github/workflows/ci.yml
- Command line
-
hf download hf://elyanlabs/npu-linux-kit/.github/workflows/ci.yml
-
curl -L -o ci.yml https://huggingface.co/elyanlabs/npu-linux-kit/resolve/main/.github/workflows/ci.yml
2.23 kB
| name: CI (software-only) | |
| # Every module in this kit is an application layer on top of the open-xdna | |
| # NPU stack (IRON/mlir-aie + Peano + a real XDNA1 NPU + amdxdna driver). | |
| # None of that toolchain or hardware exists on a normal GitHub-hosted | |
| # runner, so this workflow does NOT and CANNOT verify: | |
| # - any camera/*.py effect actually running on the NPU | |
| # - camera/kernels/blur3x3.cc compiling (needs the Peano AIE2 | |
| # cross-compiler and aie_api headers) | |
| # - any of the measured FPS/latency numbers in camera/README.md | |
| # | |
| # What IS hardware-independent and checked here: | |
| # - every Python file parses (byte-compiles) cleanly | |
| # - the host-side pip requirements (opencv, onnxruntime, numpy, | |
| # ml_dtypes, pyvirtualcam) install cleanly on Linux/x86_64 | |
| # - each camera/*.py module imports up through all of ITS OWN | |
| # host-side deps and fails only at `import aie.iron` (i.e. the NPU | |
| # toolchain boundary), never earlier on a host-side bug. If a | |
| # module fails on anything other than a missing `aie` module, that | |
| # is a real bug this CI will catch. | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| syntax-and-host-deps: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Byte-compile all Python sources (syntax only, no NPU/aie needed) | |
| run: python -m compileall -q camera | |
| - name: Install host-side requirements (no NPU stack involved) | |
| run: pip install -r requirements.txt | |
| - name: Import each camera module up to the NPU-toolchain boundary | |
| run: | | |
| set -e | |
| fail=0 | |
| for f in camera/*.py; do | |
| echo "--- $f ---" | |
| out=$(python3 "$f" 2>&1) && { echo "ran to completion (unexpected without hardware, but not a failure)"; continue; } | |
| if echo "$out" | grep -q "ModuleNotFoundError: No module named 'aie'"; then | |
| echo "OK: fails only at the expected NPU-toolchain (aie) boundary" | |
| else | |
| echo "$out" | |
| echo "FAIL: $f errored before reaching the aie import boundary" | |
| fail=1 | |
| fi | |
| done | |
| exit $fail | |