44 lines
4.9 KiB
Markdown
Executable File
44 lines
4.9 KiB
Markdown
Executable File
---
|
|
source: 'https://github.com/mallexxx/virfield/tree/codex/retire-lume-release-hardening'
|
|
confidence: 1
|
|
namespace: work
|
|
last_updated: '2026-10-15'
|
|
tags:
|
|
- ui-testing
|
|
- vm
|
|
- virfield
|
|
- xcode
|
|
virfield_updated: '2026-10-15'
|
|
---
|
|
# VM UI Testing — Virfield
|
|
|
|
Host manager — Virfield на Go; текущий runtime — Tart + SSH nodes. Опубликованный релиз, установленный кандидат, проверенная матрица OS/Xcode и незакрытые release gates различаются; их актуальный статус — только в [[personal/projects/virfield]]. Эта заметка описывает границу UI-test integration; установка, API/MCP и команды поддерживаются в [Operations](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/OPERATIONS.md).
|
|
|
|
Обновление2026-10-15: standard VM account — `admin/admin`, автоматическую случайную rotation пользователь отменил. Изменение ещё не реализовано в source/installed f60; ранее secured images могут содержать generated passwords. Native GUI/new SSH key storage, unlocked console, pinned key-only SSH и key isolation остаются обязательны. macOS27 f60 сейчас дважды не прошла standalone native login-keychain qualification; production Broker/macOS27 repeat открыт. Старый UI-test profile PASS не закрывает этот новый отказ.
|
|
|
|
## Поток UI-теста
|
|
|
|
1. Получить lease подготовленного image с отдельным caller-owned SSH public key через CLI/API или MCP `vm_acquire`; дождаться состояния `ready`.
|
|
2. По pinned SSH перенести/клонировать исходники на локальный диск VM и запустить build/test внутри гостя. Runner/Executor отвечает за команды, Xcode scheme и сбор результатов.
|
|
3. Выгрузить `.xcresult`, логи и screenshots до освобождения lease.
|
|
4. Вызвать `vm_release` и проверить завершение cleanup; expiry также запускает cleanup. Освобождение lease удаляет disposable VM.
|
|
|
|
Для physical-host lease workspace — `~/virfield/leases/<vm>/workspace`; release не сбрасывает shared account и не убивает его процессы. VM lease disposable, host lease — нет.
|
|
|
|
Virfield управляет VM и соединением, а не выполняет XCUITest workflow через MCP. Протокол Runner/Broker и полный автоматический UI-test flow требуют отдельной интеграционной приёмки. Гостевые Peekaboo/tools устанавливаются full image profile, но host MCP не экспортирует их UI-команды.
|
|
|
|
## Ограничения
|
|
|
|
- Локальный Tart pool: максимум две macOS VM в текущем deployment с учётом внешних VM и reservations; удалённые ноды имеют отдельные slots; `capacity_exhausted` — повод поставить run в очередь Broker.
|
|
- Успешный acquire означает принятый job, не готовность гостя. Использовать lease только после `ready`.
|
|
- Recipe не монтирует host shared folders. Build workspace находится в VM; личные host SSH keys и provider credentials не запекаются в golden.
|
|
- Full UI-test profile `uitest-27-v1` имеет историческую приёмку на macOS27/26A428, но текущая macOS27 qualification f60 не принята из-за native login-keychain failure. Нужен исправленный exact installed candidate и свежий Broker/UI-test прогон; успех Monterey/Sequoia не заменяет этот gate. Совместимость OS/Xcode с выбранной веткой apple-browsers проверяется отдельно.
|
|
- Реальный golden/clone E2E Virfield прошёл на одном Mac. Это не подтверждение XCUITest run для apple-browsers через новый Broker/Runner.
|
|
|
|
## Ссылки
|
|
|
|
- [Image pipeline](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/IMAGE-PIPELINE.md) — golden preparation и guest policy.
|
|
- [Verification](https://github.com/mallexxx/virfield/blob/codex/retire-lume-release-hardening/docs/VERIFICATION.md) — фактическая приёмка и оставшиеся проверки.
|
|
- [[work/wiki/apple-browsers/ci-pipeline]] — CI проекта и требования к Xcode.
|
|
- [[work/wiki/apple-browsers/ui-testing]] — правила самих UI-тестов.
|