# Linux platform matrix

Workflow `linux-platform-matrix.yml` собирает те же self-contained release-архивы, которые устанавливает production bootstrap, отдельно для `linux-x64` и `linux-arm64`.

## Реальные Ubuntu VM

На GitHub-hosted VM проверяются:

- Ubuntu 22.04 x64;
- Ubuntu 24.04 x64;
- Ubuntu 22.04 arm64;
- Ubuntu 24.04 arm64.

Каждая VM выполняет `preflight`, проверяет checksum и содержимое архива, дважды устанавливает Control, проверяет emergency-команду, перезапускает systemd service и обращается к HTTPS `/healthz` через созданный CA.

## Debian systemd containers

Debian 12/13 проверяются для x64 и arm64 в privileged systemd-контейнерах на соответствующей архитектуре runner. Тест выполняет чистую и повторную установку, затем полностью перезапускает контейнер и проверяет автоматический запуск Control и HTTPS healthcheck после нового systemd boot.

Systemd-контейнер проверяет дистрибутив, users, permissions, units, certificates, SQLite state и service lifecycle, но не считается полноценной Debian VM. Отдельным незакрытым критерием остаётся reboot настоящих Debian VM с собственным kernel. Физическая проверка WireGuard/nftables также выполняется по `three-server-acceptance.md`, поскольку GitHub runners не моделируют внешний NAT и cloud firewall.

## Debian VM reboot constraint

В GitHub-hosted runners для Debian недоступны официальные образы виртуальных машин. Из-за этого тестирование перезагрузки полноценной Debian VM с собственным ядром невозможно в текущем CI/CD pipeline. В качестве компромиссного решения для тестов на обеих архитектурах (x64 и arm64) используются privileged systemd-контейнеры. Они успешно моделируют lifecycle systemd services, но физический reboot Debian VM остаётся для ручной приёмки.
