Сборка дистрибутивов OneScript из официальных zip-архивов oscript.io.
Один Docker-контейнер на базе amake/innosetup собирает:
- Windows-установщики
.exe(Inno Setup): standalone x86/x64 и FDD x86/x64, с опциональным OVM .debдвух видов: FDD и standalone x64.rpmдвух видов: FDD и standalone x64- AppImage (Linux x64)
- macOS-архивы
.tar.gz(Intel и ARM) сinstall.sh
- Docker Desktop 4.37+ (или Docker Engine + Compose v2)
- Доступ в интернет для скачивания артефактов
На Windows удобнее запускать через build.ps1. На Linux/macOS — через docker compose напрямую.
- Скачивание zip и
ovm.exe→ volumebuild-cache(/work/cache) - Распаковка через 7z → volumes
build-staging(Linux/macOS) иwin-staging(Windows) - Locale
ru_RU.UTF-8для Wine (LANG/LC_ALL) - Inno Setup (Wine) собирает
.exeс корректными кириллическими именами - На хост попадает только
dist/(готовые пакеты)
# 1. Собрать образ (один раз или после изменений Dockerfile)
docker compose build
# 2. Собрать все пакеты для версии 2.0.2
.\build.ps1 2.0.2Готовые файлы появятся в каталоге dist/.
.\build.ps1 2.0.2
.\build.ps1 2.0.2 -Targets win
.\build.ps1 2.0.2 -Targets deb,rpm,appimage
.\build.ps1 2.0.2 -OvmVersion v1.6.2docker compose build
docker compose run --rm build 2.0.2
docker compose run --rm build 2.0.2 --targets win,deb,rpm| Параметр | Описание | По умолчанию |
|---|---|---|
version |
Версия OneScript (2.0.2) |
обязательный |
--ovm-version / -OvmVersion |
Тег релиза OVM на GitHub | latest |
--targets / -Targets |
Список целей через запятую | all |
| Цель | Что делает |
|---|---|
all |
Всё перечисленное ниже |
win |
Windows .exe (standalone x86/x64 + FDD x86/x64) |
linux |
оба deb + оба rpm + AppImage |
deb |
Debian FDD + Debian x64 |
rpm |
RPM FDD + RPM x64 |
appimage |
AppImage |
macos |
macOS tar.gz (Intel + ARM) |
Если Docker/Wine по какой-то причине не подходит, есть запасной путь — нативный Inno Setup + 7-Zip на Windows:
.\scripts\build-windows-native.ps1 -Version 2.0.2Требует установленных Inno Setup 6 и 7-Zip.
| Каталог | Где физически | Назначение |
|---|---|---|
cache/ |
volume build-cache → /work/cache |
Скачанные zip (внутри контейнера) |
staging/ |
volume build-staging → /work/staging |
Linux/macOS артефакты |
win-staging/ |
volume win-staging → /work/win-staging |
Windows артефакты для Inno |
dist/ |
/work/dist (bind-mount с хоста) |
Готовые пакеты |
cache/ и staging/ в .gitignore — на хосте могут не существовать, данные живут в Docker volumes.