Contribute: the smoketest's disk use and how to free it

The images are kept between runs (installed is about 35 GB), and a
scenario's disk only holds its changes, so the old "a VM disk grows to
about 50 GB and is deleted" was misleading. Mention smoketest clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 09:14:54 -07:00
co-authored by Claude Opus 5.5
parent 8a4cc10037
commit 63d78c8419
+1 -1
View File
@@ -91,7 +91,7 @@ sections:
**How it works.** Each scenario runs on a throwaway copy of one of two images. *base* is Arch's cloud image with GNOME added as archinstall's desktop profile does it, and a user `tester` (password `tester`) who logs in automatically. *installed* is base after `install.sh` at the commit your branch started from; scenarios on it first `update` to the commit under test. Inside the VM, a bare repo at `/srv/smoketest/coredesktop.git` stands in for Gitea, so `install.sh` and `update` run unchanged. After a scenario, `fingerprint` describes the machine as text (packages, Flatpaks, services, firewall, files in `/etc`, GNOME settings). The baseline scenario installs an older commit, runs `update`, and checks the result matches a fresh install. If not, an `install.sh` change is probably missing its migration.
**What you need.** KVM (virtualization turned on in the firmware), about 8 GB of RAM and 4 CPUs per VM (`SMOKETEST_MEMORY`, `SMOKETEST_CPUS`), and room in `~/.cache/coredesktop-dev/smoketest`: a VM disk grows to about 50 GB during a run, and is deleted afterwards. The first run builds both images before any scenario runs: *base* in a few minutes, *installed* in an hour or more. Later runs reuse them; rebuild *installed* now and then with `coredesktop-dev smoketest images installed`. Arch packages are cached and shared between VMs; Flatpaks aren't. To watch a VM's screen, set `SMOKETEST_VNC=1` and connect a VNC viewer to `127.0.0.1:5901`.
**What you need.** KVM (virtualization turned on in the firmware), about 8 GB of RAM and 4 CPUs per VM (`SMOKETEST_MEMORY`, `SMOKETEST_CPUS`), and about 45 GB in `~/.cache/coredesktop-dev/smoketest`. The images are kept between runs (the installed one is the biggest, around 35 GB), along with the shared package cache and each run's logs. A scenario's own disk only holds its changes to the image, and is deleted when the scenario ends. To free space, `coredesktop-dev smoketest clean` deletes old runs' logs, and `clean --all` deletes everything, so the next run rebuilds the images. The first run builds both images before any scenario runs: *base* in a few minutes, *installed* in an hour or more. Later runs reuse them; rebuild *installed* now and then with `coredesktop-dev smoketest images installed`. Arch packages are cached and shared between VMs; Flatpaks aren't. To watch a VM's screen, set `SMOKETEST_VNC=1` and connect a VNC viewer to `127.0.0.1:5901`.
**Following a run.** While a VM boots, or a command such as `install.sh` runs in it, the terminal says once a minute what it's still waiting for, or which command is still running and its latest line of output. The logs are in `~/.cache/coredesktop-dev/smoketest`: `build.log` and the VM's console, `serial.log`, in `build-base/` and `build-installed/` while an image builds, and each scenario's logs in `runs/<date>-<time>/<scenario>/`. Each command's log is written as it runs, so you can follow it with `tail -f`.