Repository navigation
Expand file tree
/
Copy pathspread.yaml
More file actions
93 lines (89 loc) · 3.4 KB
/
Copy pathspread.yaml
File metadata and controls
93 lines (89 loc) · 3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# Spread project for myna (feature 006, US5) — confined multi-system
# end-to-end tests on clean systems. Decision record:
# specs/006-coverage-quality-gates/spread-decision.md
#
# Run locally (needs KVM): make spread (whole suite; primes the VM
# image and builds spread on first run)
# Single task: make spread-<dir under tests/spread>, e.g. spread-adapter-smoke
# Debug a failure (keep the VM): make spread-adapter-smoke SPREAD_FLAGS=-debug
#
# spread is built from the pinned commit by dev/spread-build.sh (same as CI),
# NOT the snap (no kvm plug), with one local patch: `-cpu host` for the guest
# (qemu64 lacks x86-64-v2; numpy/CTranslate2 wheels refuse to run without it).
#
# The snaps under test are prebuilt and sent with the project:
# myna-snap/myna_*_amd64.snap (myna-snap/dev/prepare.sh && snapcraft pack)
# fake-snap/myna-fake-backend_*_amd64.snap (fake-snap/dev/prepare.sh && snapcraft pack)
# whisper-snap/myna-whisper_*_amd64.snap (make snap-whisper)
# whisper-snap/myna-whisper+model-tiny.comp (same; download-models.sh stages the weights)
#
# confined-e2e uses the fake backend (no model, runs anywhere); adapter-smoke
# uses the real whisper snap to prove a shipped adapter is wired up in both
# emission modes. 4 GB of VM RAM is enough for whisper-tiny on CPU.
project: myna
path: /home/spread/myna
backends:
qemu:
memory: 4G
systems:
- ubuntu-24.04-64:
username: ubuntu
password: ubuntu
# Keep the send small: the suite needs only the two snaps and tests/.
exclude:
- .git
- client/target
- client
- server/.venv
- server
- corpus
- results
- .coverage-work
- .workshop
- specs
- docs
- dev
- extensions
- .claude
- .pi
- .ruff_cache
# Local caches and reference checkouts: HF dataset caches, the locally
# built spread binary + clone, upstream snap sources. Several GB that the
# tasks never touch - they alone fill the 4 GB guest disk.
- .cache
- reference
- htmlcov
- myna-bench.pyz
# whisper-snap is *not* excluded wholesale: adapter-smoke needs the packed
# snap and the tiny component (161 MB + 76 MB). Its build trees and the
# larger components are dropped instead - shipping base/small/CUDA would add
# 2.3 GB to every send for no extra coverage.
- whisper-snap/parts
- whisper-snap/stage
- whisper-snap/prime
- whisper-snap/stage_packages
- whisper-snap/components
- whisper-snap/wheels
- whisper-snap/myna-whisper+model-base.comp
- whisper-snap/myna-whisper+model-small.comp
- whisper-snap/myna-whisper+gpu-nvidia.comp
- parakeet-snap
- funasr-snap
- fake-snap/stage
- fake-snap/prime
- fake-snap/parts
- fake-snap/stage_packages
- myna-snap/stage
- myna-snap/prime
- myna-snap/parts
- myna-snap/stage_packages
suites:
tests/spread/:
summary: Confined end-to-end tests
# Every task also fails on an AppArmor denial of our snaps, its own
# restore included (tests/lib/apparmor_denials.py).
prepare-each: |
journalctl -n 0 --show-cursor --no-pager | sed -n 's/^-- cursor: //p' > /root/apparmor.cursor
restore-each: |
journalctl --after-cursor "$(cat /root/apparmor.cursor)" --no-pager \
| python3 -I "$SPREAD_PATH/tests/lib/apparmor_denials.py"