diff options
| author | Craig Jennings <c@cjennings.net> | 2026-01-27 17:22:55 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-01-27 17:22:55 -0600 |
| commit | 70bb2d5ab1bf6787bc613e33f5398be2eca1f5fd (patch) | |
| tree | 0d8cd5057dd32f5f312a7f3534d590b99c2f0f91 /scripts/testing/archinstall-config.json | |
| parent | 0c6175bfc98f2c5ff2debc665fd8bf91f9171f4e (diff) | |
feat(testing): rewrite test infrastructure from libvirt to direct QEMU
Replace the never-fully-operational libvirt-based VM test infrastructure
with direct QEMU management and archangel ISO for fully automated,
unattended base VM creation.
Key changes:
- vm-utils.sh: complete rewrite — QEMU process mgmt via PID file,
monitor socket for graceful shutdown, qemu-img snapshots, SSH
port forwarding (localhost:2222)
- create-base-vm.sh: boots archangel ISO, SSHs in, runs unattended
install via config file, verifies, creates clean-install snapshot
- run-test.sh: snapshot revert, git bundle transfer, detached archsetup
execution with setsid, polling, validation, and report generation
- debug-vm.sh: CoW overlay disk, GTK display, auto-cleanup on close
- setup-testing-env.sh: reduced deps to qemu-full/sshpass/edk2-ovmf/socat
- cleanup-tests.sh: PID-based process management, orphan detection
- validation.sh: port-based SSH (backward compatible), fuzzel/foot for
Hyprland, corrected package list paths
- network-diagnostics.sh: getent/curl instead of nslookup/ping (SLIRP)
New files:
- archsetup-test.conf: archangel config for base VM (btrfs, no encrypt)
- archsetup-vm.conf: archsetup config for unattended test execution
- assets/archangel.conf.example: reference archangel config
Deleted:
- finalize-base-vm.sh: merged into create-base-vm.sh
- archinstall-config.json: replaced by archangel .conf format
Tested: full end-to-end run — 51 validations passed, 0 failures.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Diffstat (limited to 'scripts/testing/archinstall-config.json')
| -rw-r--r-- | scripts/testing/archinstall-config.json | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/scripts/testing/archinstall-config.json b/scripts/testing/archinstall-config.json deleted file mode 100644 index a55e2a1..0000000 --- a/scripts/testing/archinstall-config.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "!users": { - "0": { - "!password": "archsetup", - "username": "root", - "sudo": false - } - }, - "archinstall-language": "English", - "audio_config": null, - "bootloader": "systemd-bootctl", - "config_version": "2.8.0", - "debug": false, - "disk_config": { - "config_type": "default_layout", - "device_modifications": [ - { - "device": "/dev/vda", - "partitions": [ - { - "btrfs": [], - "flags": [ - "Boot" - ], - "fs_type": "fat32", - "length": { - "sector_size": null, - "total_size": null, - "unit": "MiB", - "value": 512 - }, - "mount_options": [], - "mountpoint": "/boot", - "obj_id": "boot_partition", - "start": { - "sector_size": null, - "total_size": null, - "unit": "MiB", - "value": 1 - }, - "status": "create", - "type": "primary" - }, - { - "btrfs": [], - "flags": [], - "fs_type": "ext4", - "length": { - "sector_size": null, - "total_size": null, - "unit": "MiB", - "value": 100 - }, - "mount_options": [], - "mountpoint": "/", - "obj_id": "root_partition", - "start": { - "sector_size": null, - "total_size": null, - "unit": "MiB", - "value": 513 - }, - "status": "create", - "type": "primary" - } - ], - "wipe": true - } - ] - }, - "disk_encryption": null, - "hostname": "archsetup-test", - "kernels": [ - "linux" - ], - "locale_config": { - "kb_layout": "us", - "sys_enc": "UTF-8", - "sys_lang": "en_US" - }, - "mirror_config": { - "custom_mirrors": [], - "mirror_regions": { - "United States": [ - "https://mirror.rackspace.com/archlinux/$repo/os/$arch", - "https://mirror.leaseweb.com/archlinux/$repo/os/$arch" - ] - } - }, - "network_config": { - "type": "nm" - }, - "no_pkg_lookups": false, - "ntp": true, - "offline": false, - "packages": [ - "openssh", - "dhcpcd", - "git", - "vim" - ], - "parallel downloads": 5, - "profile_config": { - "gfx_driver": "All open-source", - "greeter": null, - "profile": { - "custom_settings": {}, - "details": [], - "main": "Minimal" - } - }, - "script": "guided", - "silent": false, - "swap": false, - "timezone": "America/Chicago", - "version": "2.8.0" -} |
