Files
AnabasisChatRemove/docs/release-linux.md
T
benya bb6de9b737
Desktop CI / tests (push) Failing after 1m51s
Prepare 2.3.0 release and Linux Docker workflows
2026-09-25 14:02:32 +03:00

3.7 KiB
Raw Blame History

Сборка Windows-релиза на Linux runner

Workflow .gitea/workflows/release.yml запускается вручную из ветки master через Gitea Actions → Desktop Release → Run workflow. Версия берётся из app_version.py; для ближайшего релиза это 2.3.0.

Настройка раннера

  • Ваши runner.labels в /config.yaml уже верно привязывают ubuntu-latest к docker://docker.gitea.com/runner-images:ubuntu-latest. Менять их не требуется.
  • В 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-контейнер.
  • В секретах репозитория нужен API_TOKEN с правами записи тегов и релизов. Checkout также должен иметь право отправить git tag в origin.
  • Первый запуск скачает образы batonogov/pyinstaller-windows:latest и amake/innosetup:innosetup6 и установит зависимости Python внутри контейнера Wine. Для образов и артефактов потребуется несколько гигабайт свободного места. Сборка передаёт файлы через docker cp, поэтому пути внутри job-контейнера и Docker host могут различаться.

Что делает workflow

  1. Проверяет, что релиза v2.3.0 ещё нет, затем запускает тесты.
  2. Собирает Windows-приложение и ZIP через PyInstaller под Wine.
  3. Собирает установщик через Inno Setup под Wine.
  4. Проверяет наличие обоих EXE, version.txt в ZIP и SHA256 обоих файлов.
  5. Создаёт тег и релиз Gitea с четырьмя вложениями: ZIP, его .sha256, установщик EXE и его .sha256.

Имена ZIP и файлов SHA256 сохранены в формате, который читает автообновление. Workflow для ветки dev также переведён на ubuntu-latest и выпускает ZIP-предрелизы; установщик для них не собирается.

Сборка под Wine требует отдельной проверки запуска приложения и установки на реальной Windows. Локально можно собрать и проверить артефакты теми же скриптами scripts/docker-build-windows.sh и scripts/docker-build-installer.sh, если доступен Linux с Docker.