Источник
docker/e2e.Dockerfile + .github/workflows/e2e.yml + tests/e2e из upstream-PR isac322#42 (не вмержен).
Ценность
Прогон headless GUI-тестов в контейнере: Debian trixie, KWin 6, AT-SPI2, libei, llvmpipe — без --privileged. Воспроизводимое e2e-окружение для CI без живого десктопа.
Обязательная адаптация под форк
Форк осознанно ставит KDE_FULL_SESSION/KDE_SESSION_VERSION при запуске KWin — в минимальном контейнере это валит KWin (находка апстрима в isac322#42: с этими переменными KWin уходит в full Plasma session startup path — ksmserver, kded, plasma-workspace — и падает). При портировании Dockerfile/обёртки эту инверсию нужно учесть: форк не должен копировать апстримный env -u слепо, но и не должен ломаться от собственных env.
Известные гэпы апстрима (принять как данность или починить отдельно)
- Pointer-инъекция в контейнере не доходит до приложения (клавиатура работает).
- Скриншоты требуют DRM render node — соответствующий тест opt-in через
KWIN_MCP_E2E_SCREENSHOT=1.
Статус
Отложено. Брать, когда понадобится headless-прогон GUI-тестов в CI.
Источник
docker/e2e.Dockerfile + .github/workflows/e2e.yml + tests/e2e из upstream-PR isac322#42 (не вмержен).
Ценность
Прогон headless GUI-тестов в контейнере: Debian trixie, KWin 6, AT-SPI2, libei, llvmpipe — без
--privileged. Воспроизводимое e2e-окружение для CI без живого десктопа.Обязательная адаптация под форк
Форк осознанно ставит
KDE_FULL_SESSION/KDE_SESSION_VERSIONпри запуске KWin — в минимальном контейнере это валит KWin (находка апстрима в isac322#42: с этими переменными KWin уходит в full Plasma session startup path — ksmserver, kded, plasma-workspace — и падает). При портировании Dockerfile/обёртки эту инверсию нужно учесть: форк не должен копировать апстримныйenv -uслепо, но и не должен ломаться от собственных env.Известные гэпы апстрима (принять как данность или починить отдельно)
KWIN_MCP_E2E_SCREENSHOT=1.Статус
Отложено. Брать, когда понадобится headless-прогон GUI-тестов в CI.