3.7 KiB
3.7 KiB
Сборка 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
- Проверяет, что релиза
v2.3.0ещё нет, затем запускает тесты. - Собирает Windows-приложение и ZIP через PyInstaller под Wine.
- Собирает установщик через Inno Setup под Wine.
- Проверяет наличие обоих EXE,
version.txtв ZIP и SHA256 обоих файлов. - Создаёт тег и релиз 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.