Запуск приложения с графическим интерфейсом пользователя в службе CI без X11
У меня есть приложение с графическим интерфейсом, для которого я хотел бы настроить тестирование с помощью GitHub Actions. Я уже настроил его так, чтобы GitHub Actions компилировал приложение на Ubuntu, но теперь я хотел бы запустить приложение на несколько секунд и проверить, вылетает оно или нет. Однако в настоящее время он не запускается, потому что не установлен сервер X11.
Есть ли способ установить фиктивный сервер X11, чтобы приложение работало? Меня не волнует, что на самом деле отображается, я просто хочу, чтобы приложение могло открываться без сбоев из-за отсутствия сервера X11.
В качестве альтернативы, есть ли способ установить фиктивный сервер Wayland? Это приложение также можно запустить на Wayland.
3 ответа
Вы можете попробовать xvfb-run из проекта Xvfb . Он запускает ваше приложение (я) на полностью совместимом сервере X Window без какого-либо оборудования (вы даже можете запускать x11vnc среди своих приложений и подключаться к серверу через VNC, но я считаю, что на данный момент это не ваш случай). Лично я использую xvfb-run для изолированной сборки пакетов с поддержкой X.org без экрана, когда, например, пакету необходимо сделать снимок самого себя при создании документации.
$ xvfb-run x.org_application_binary
Я использую эту команду:
linux:
runs-on: ubuntu-latest
steps:
run: |
export DISPLAY=:99
sudo Xvfb -ac :99 -screen 0 1280x1024x24 > /dev/null 2>&1 &
mycommand
Да, это возможно. Просто создайте образ Docker в своей среде X11 и разверните в нем свое приложение.
Кроме того, вы также можете просто установить X11 на свой компьютер. Обязательно делайте это при каждом запуске, так как среды всегда полностью сбрасываются:
sudo apt-get install xorg openbox