Сборка и поставка

Артефакты и развёртывание

Найдите файлы для развёртывания, запустите копию продукта и восстановите изменённый каталог вывода.

Скопируйте нужные приложению файлы в среду развёртывания и запустите его без исходного пакета Топаза. Здесь вы найдёте состав каталога и способ восстановления после отказа повторной сборки.

Подготовьте пример нативного пакета или пример вызова из JavaScript. В этих руководствах указаны исходные файлы и инструменты сборки.

Выберите каталог вывода

Для отдельного файла main.tpz выберите команду под свою среду развёртывания.

BASH
topaz build main.tpz --release --out-dir native-product
topaz build main.tpz --target web --out-dir web-product
topaz build main.tpz --target web-worker --out-dir worker-product
topaz build --root my-app --locked --release --out-dir package-product

Первые три команды создают соответственно native-product, web-product и worker-product. Последняя собирает существующий пакет my-app в package-product. Она читает [build].target из topaz.toml и проверяет topaz.lock с параметром --locked.

Развёртывайте весь каталог, указанный в --out-dir. Его создаёт команда build. Для изучения или интеграции сгенерированного исходного кода используйте emit. Временные файлы компилятора не образуют готовый продукт.

Сохраните общие файлы

Каждая успешная сборка включает следующие файлы.

Вывод
LICENSE
NOTICE
GENERATED-OUTPUT-NOTICE.txt
topaz-artifact.json

Сохраняйте правовые уведомления вместе с продуктом. Манифест topaz-artifact.json перечисляет файлы, которые Топаз создал и которыми управляет. Он содержит их пути, размеры, хэши и требования к правам на исполнение. Там же указаны цель, идентификаторы инструментария и языка, требования к среде выполнения и команда сборки. Топаз записывает манифест последним. Храните topaz.lock с исходным пакетом для дальнейшей разработки и сборки.

Найдите файлы своей цели

Нативная сборка добавляет исполняемый файл по одному из этих путей.

Вывод
target/debug/program[.exe]
target/release/program[.exe]

По умолчанию используется путь debug, а с параметром --release используется release. Каждая сборка создаёт выбранный путь. В Windows файл называется program.exe.

Сборка Web добавляет модуль JavaScript, объявления типов и программу WASM.

Вывод
topaz-web.js
topaz-web.d.ts
topaz-web.wasm

Сборка Worker включает файлы Web и два модуля для передачи запросов и ответов.

Вывод
topaz-web-worker.js
topaz-web-worker-client.js

Запустите из скопированного каталога

Скопируйте весь нативный продукт в новое место и откройте терминал в этом каталоге. Для релизной сборки выполните следующую команду.

BASH
./target/release/program

В PowerShell запустите .\target\release\program.exe. При тех же входных данных проверьте, что вывод совпадает. Пример учебного плана выводит tasks=2, remaining=25 minutes и завершается с кодом 0. Используйте ОС и архитектуру, для которых собран исполняемый файл.

Нативные приложения из пакетов разрешают корневые пути доступа к файлам относительно рабочего каталога процесса. Скопируйте нужные файлы data/ и создайте доступные для записи каталоги по путям из topaz.toml. Сборка не копирует данные пакета автоматически.

Для Web и Worker раздавайте скопированный каталог по HTTP и импортируйте созданный модуль JavaScript. Входные данные и результат показаны в примере вызова из JavaScript. Браузеры не поддерживают такой способ загрузки через file://.

Восстановитесь после отказа сборки

Перед повторной сборкой в тот же каталог Топаз проверяет файлы из topaz-artifact.json. Он отклоняет смену цели, некорректный манифест, изменение управляемого файла, символическую ссылку или конфликт с пользовательским путём. Файлы вне манифеста остаются без изменений.

Сохраните отклонённый каталог для изучения и выберите новый пустой --out-dir. Не удаляйте незнакомый каталог ради запуска сборки. Чтобы вернуть прежний продукт, восстановите его исправную копию целиком. Не редактируйте хэши и не удаляйте отдельные управляемые файлы.

Связанная документация