Install Qt X11 runtime dependencies in Linux workflows
Desktop CI / tests (push) Successful in 42s

This commit is contained in:
benya
2026-09-25 15:00:28 +03:00
parent 800e293d5b
commit c4c10d79ca
5 changed files with 25 additions and 20 deletions
+1 -6
View File
@@ -22,12 +22,7 @@ jobs:
python-version: "3.13"
- name: Install Qt runtime libraries
run: |
if [ "$(id -u)" -eq 0 ]; then
apt-get update && apt-get install -y libgl1 libegl1
else
sudo apt-get update && sudo apt-get install -y libgl1 libegl1
fi
run: bash scripts/install-qt-runtime-deps.sh
- name: Install dependencies
run: |
+1 -7
View File
@@ -71,13 +71,7 @@ jobs:
- name: Install Qt runtime libraries
if: steps.check_release.outputs.publish == 'true'
shell: bash
run: |
set -euo pipefail
if [ "$(id -u)" -eq 0 ]; then
apt-get update && apt-get install -y libgl1 libegl1
else
sudo apt-get update && sudo apt-get install -y libgl1 libegl1
fi
run: bash scripts/install-qt-runtime-deps.sh
- name: Install test dependencies
if: steps.check_release.outputs.publish == 'true'
+1 -7
View File
@@ -68,13 +68,7 @@ jobs:
- name: Install Qt runtime libraries
if: steps.check_release.outputs.publish == 'true'
shell: bash
run: |
set -euo pipefail
if [ "$(id -u)" -eq 0 ]; then
apt-get update && apt-get install -y libgl1 libegl1
else
sudo apt-get update && sudo apt-get install -y libgl1 libegl1
fi
run: bash scripts/install-qt-runtime-deps.sh
- name: Install test dependencies
if: steps.check_release.outputs.publish == 'true'
+1
View File
@@ -8,6 +8,7 @@ Workflow `.gitea/workflows/release.yml` запускается вручную и
- В Docker Compose сейчас есть `GITEA_RUNNER_LABELS: "ubuntu-latest,docker,self-hosted"`. Удалите эту переменную или задайте в ней ту же явную схему `ubuntu-latest:docker://...`: при запуске daemon значение переменной может переопределить `runner.labels`, а голая метка `ubuntu-latest` означает выполнение шагов внутри контейнера `gitea-runner`.
- Ваше монтирование `/var/run/docker.sock:/var/run/docker.sock` в контейнер раннера оставьте. Job-контейнеру также нужен доступ к этому сокету через настройки `container.docker_host` (значение по умолчанию — автоопределение). Workflow при необходимости установит Docker CLI в job-контейнер.
- Docker host должен быть x86_64 и иметь достаточно места. `actions/setup-python` устанавливает Python 3.13 в job-контейнер.
- `scripts/install-qt-runtime-deps.sh` ставит системные runtime-библиотеки OpenGL, XCB и X11 для PySide6; список составлен по [требованиям Qt для Linux](https://doc.qt.io/qt-6/linux-requirements.html).
- В секретах репозитория нужен `API_TOKEN` с правами записи тегов и релизов. Checkout также должен иметь право отправить git tag в `origin`.
- Первый запуск скачает образы `batonogov/pyinstaller-windows:latest` и `amake/innosetup:innosetup6` и установит зависимости Python внутри контейнера Wine. Для образов и артефактов потребуется несколько гигабайт свободного места. Сборка передаёт файлы через `docker cp`, поэтому пути внутри job-контейнера и Docker host могут различаться.
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
# Runtime libraries used by PySide6/QtGui on Ubuntu, including XCB and OpenGL.
qt_runtime_packages=(
libgl1 libegl1 libxkbcommon0 libxkbcommon-x11-0
libxcb-cursor0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1
libxcb-randr0 libxcb-render-util0 libxcb-shape0 libxcb-shm0
libxcb-sync1 libxcb-xfixes0 libxcb-xkb1 libxcb-xinerama0
libxcb-util1 libxcb-glx0
libx11-6 libx11-xcb1 libxext6 libxrender1 libsm6 libice6 libxi6
libfontconfig1 libfreetype6 libglib2.0-0
)
if [ "$(id -u)" -eq 0 ]; then
apt-get update
apt-get install -y --no-install-recommends "${qt_runtime_packages[@]}"
else
sudo apt-get update
sudo apt-get install -y --no-install-recommends "${qt_runtime_packages[@]}"
fi