version: 1 script: # 1) Чистим старый AppDir - rm -rf AppDir || true # 2) Создаём структуру каталога - mkdir -p AppDir/usr/local/lib/python3.10/dist-packages # 3) UV: создаём виртуальное окружение и устанавливаем зависимости из pyproject.toml - uv venv - uv pip install --no-cache-dir ../ # 4) Копируем всё из .venv в AppDir - cp -r .venv/lib/python3.10/site-packages/* AppDir/usr/local/lib/python3.10/dist-packages - cp -r share AppDir/usr # 5) Удаляем __pycache__ файлы - find AppDir -name "__pycache__" -type d -exec rm -rf {} + || true # 6) Удаляем тестовые файлы и документацию - find AppDir -path "*/test*" -type d -exec rm -rf {} + || true - find AppDir -path "*/tests*" -type d -exec rm -rf {} + || true - find AppDir -name "*.md" -delete || true - find AppDir -name "*.rst" -delete || true - find AppDir -name "*.txt" -delete || true - find AppDir -path "*/doc*" -type d -exec rm -rf {} + || true - find AppDir -path "*/docs*" -type d -exec rm -rf {} + || true - find AppDir -name "README*" -delete || true - find AppDir -name "CHANGELOG*" -delete || true - find AppDir -name "LICENSE*" -delete || true - find AppDir -name "COPYING*" -delete || true - find AppDir -name "AUTHORS*" -delete || true - find AppDir -name "CONTRIBUTORS*" -delete || true # 7) Чистим от ненужных модулей и бинарников - rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/Qt/qml/ - rm -f AppDir/usr/local/lib/python3.10/dist-packages/PySide6/{assistant,designer,linguist,lrelease,lupdate} - rm -f AppDir/usr/local/lib/python3.10/dist-packages/PySide6/{Qt3D*,QtBluetooth*,QtCharts*,QtConcurrent*,QtDataVisualization*,QtDesigner*,QtHelp*,QtMultimedia*,QtNetwork*,QtOpenGL*,QtPositioning*,QtPrintSupport*,QtQml*,QtQuick*,QtRemoteObjects*,QtScxml*,QtSensors*,QtSerialPort*,QtSql*,QtStateMachine*,QtTest*,QtWeb*,QtXml*,QtMultimedia*} - shopt -s extglob - rm -rf AppDir/usr/local/lib/python3.10/dist-packages/PySide6/Qt/lib/!(libQt6Core*|libQt6Gui*|libQt6Widgets*|libQt6OpenGL*|libQt6XcbQpa*|libQt6Wayland*|libQt6Egl*|libicudata*|libicuuc*|libicui18n*|libQt6DBus*|libQt6Svg*|libQt6Qml*|libQt6Network*|libQt6Multimedia*) AppDir: path: ./AppDir app_info: id: ru.linux_gaming.PortProtonQt name: PortProtonQt icon: ru.linux_gaming.PortProtonQt version: 0.1.3 exec: usr/bin/python3 exec_args: "-m portprotonqt.app $@" apt: arch: amd64 sources: - sourceline: 'deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse' key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c' include: - python3 - python3-pkg-resources - libopengl0 - libk5crypto3 - libkrb5-3 - libgssapi-krb5-2 - libxcb-cursor0 - libimage-exiftool-perl - xdg-utils - libgstreamer1.0-0 - libgstreamer-plugins-base1.0-0 - gstreamer1.0-plugins-base - gstreamer1.0-plugins-good - gstreamer1.0-libav - libpulse0 exclude: - man-db - manpages - manpages-* - doc-base - info - install-info runtime: env: PYTHONHOME: '${APPDIR}/usr' PYTHONPATH: '${APPDIR}/usr/local/lib/python3.10/dist-packages' before_bundle: # Применяем strip к бинарникам и библиотекам для уменьшения размера - find AppDir -type f -name "*.so*" -exec strip --strip-all {} \; 2>/dev/null || true - find AppDir -type f -executable -exec strip --strip-unneeded {} \; 2>/dev/null || true # Удаляем пустые папки - find AppDir -type d -empty -delete || true AppImage: sign-key: None arch: x86_64