Files
HY2XS_flamy/hy2xs_implementation_plan-no_git/03-builder-layer.txt
T

65 lines
3.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
HY2XS: builder layer plan
Цель builder layer
На Debian 12 amd64 build host собрать один чистый install package, который можно перенести на чистый Debian 12 без target-side build.
Технологический выбор
Baseline packaging: shell-first.
- Основной packaging pipeline: sh/bash.
- Оркестратор при этом пишется на Bun + TypeScript.
- Builder на Debian 12 amd64 собирает install-артефакт оркестратора.
- На target не должно быть обязательного JS/TS toolchain шага.
Задачи builder layer
1. Проверка структуры репозитория.
2. Проверка наличия обязательных файлов пакета.
3. Подготовка HY2XS admin fork к поставке.
4. Локальная сборка оркестратора из Bun/TypeScript.
5. Копирование UI-артефактов в package staging.
6. Копирование templates, systemd units, docs и examples.
7. Генерация metadata: version, build_id, checksums.
8. Упаковка итогового архива.
Порядок реализации builder
Этап 1.
- Создать tools/build/build.sh.
- Создать tools/build/lib/common.sh.
- Создать tools/build/lib/verify.sh.
- Создать tools/build/lib/package.sh.
- Создать tools/build/lib/deps.sh.
- Создать tools/build/README.md.
Production-дополнение.
- Проверять Debian 12 amd64.
- Самостоятельно доставлять apt build-зависимости.
- Проверять и фиксировать версии Go/Bun/Node.js/pnpm.
- Использовать локальный управляемый toolchain при несовпадении версий.
Этап 2.
- Реализовать очистку package staging directory.
- Реализовать копирование package/ skeleton.
- Реализовать сборку `orchestrator/` и копирование артефакта в `package/orchestrator/`.
- Реализовать копирование ui/hy2xs-admin-fork в package/ui/hy2xs-admin.
Этап 3.
- Реализовать запись package.version и package.build_id.
- Реализовать checksums.txt.
- Реализовать создание dist/hy2xs-install-<version>.tar.gz.
Этап 4.
- Добавить builder smoke-проверку: архив собрался, в нём есть install.sh, оркестратор, UI, unit-файлы, templates.
Что builder не делает
- Не качает Hysteria2.
- Не выполняет серверные действия.
- Не меняет production state.
- Не содержит uninstall/update логики.
- Не включает access/bot backend в baseline package.
Acceptance criteria
- Одна команда локально создаёт переносимый install package.
- В package нет builder scripts.
- В package есть встроенный HY2XS admin.
- В package есть собранный Bun/TypeScript orchestrator.
- package можно передать на сервер без дополнительной сборки.