Полная миграция baseline на Debian 13: build-layer, metadata и документация

This commit is contained in:
2026-05-05 05:39:59 +05:00
parent 52f1e5d909
commit 9368846405
12 changed files with 37 additions and 35 deletions
+5 -5
View File
@@ -4,18 +4,18 @@
[`build.sh`](build.sh) собирает переносимый установочный пакет HY2XS для production-развёртывания.
Итоговый архив создаётся в [`dist`](../../dist) и предназначен для установки на чистый Debian 12 amd64 без сборки на целевом сервере.
Итоговый архив создаётся в [`dist`](../../dist) и предназначен для установки на чистый Debian 13 amd64 без сборки на целевом сервере.
## Поддерживаемая среда сборки
Builder поддерживает только:
- Debian 12;
- Debian 13;
- amd64 / x86_64;
- bash;
- доступ к интернету для установки build-зависимостей и toolchain.
Windows/macOS не являются production build host. На Windows можно править исходники, но финальную сборку нужно выполнять на Debian 12 amd64.
Windows/macOS не являются production build host. На Windows можно править исходники, но финальную сборку нужно выполнять на Debian 13 amd64.
## Что builder делает сам
@@ -77,13 +77,13 @@ Builder ставит управляемый toolchain в [`.toolchain`](../../.t
dist/hy2xs-install-<version>.tar.gz
```
Его нужно перенести на target Debian 12 amd64, распаковать и запустить [`install.sh`](../../package/install.sh) от root.
Его нужно перенести на target Debian 13 amd64, распаковать и запустить [`install.sh`](../../package/install.sh) от root.
## Диагностика
Если сборка падает:
1. Проверьте, что host — Debian 12 amd64.
1. Проверьте, что host — Debian 13 amd64.
2. Проверьте доступ к `go.dev`, `github.com`, `nodejs.org`, npm registry и apt repositories.
3. Удалите [`.toolchain`](../../.toolchain) и повторите запуск, если toolchain скачался повреждённым.
4. Проверьте lock-файлы [`bun.lock`](../../orchestrator/bun.lock), [`pnpm-lock.yaml`](../../apps/frontend/pnpm-lock.yaml), [`go.sum`](../../apps/go.sum).
+1 -1
View File
@@ -16,7 +16,7 @@ BUILD_DIR="$ROOT_DIR/tools/build"
main() {
cd "$ROOT_DIR"
require_linux_debian12_amd64
require_linux_debian13_amd64
require_repo_layout
ensure_build_dependencies
ensure_toolchain
+4 -4
View File
@@ -26,8 +26,8 @@ verify_archive_sha256() {
[ "$actual" = "$expected" ] || fail "$label sha256 mismatch: expected $expected, got $actual"
}
require_linux_debian12_amd64() {
[ "$(uname -s)" = "Linux" ] || fail "production builder supports only Linux Debian 12 amd64"
require_linux_debian13_amd64() {
[ "$(uname -s)" = "Linux" ] || fail "production builder supports only Linux Debian 13 amd64"
local arch
arch="$(uname -m)"
@@ -36,8 +36,8 @@ require_linux_debian12_amd64() {
[ -f /etc/os-release ] || fail "missing /etc/os-release"
# shellcheck disable=SC1091
. /etc/os-release
[ "${ID:-}" = "debian" ] || fail "production builder supports only Debian 12, got: ${ID:-unknown}"
[ "${VERSION_ID:-}" = "12" ] || fail "production builder supports only Debian 12, got version: ${VERSION_ID:-unknown}"
[ "${ID:-}" = "debian" ] || fail "production builder supports only Debian 13, got: ${ID:-unknown}"
[ "${VERSION_ID:-}" = "13" ] || fail "production builder supports only Debian 13, got version: ${VERSION_ID:-unknown}"
}
apt_install_missing() {
+3 -1
View File
@@ -81,10 +81,12 @@ write_metadata() {
printf 'name=HY2XS\n'
printf 'version=%s\n' "$version"
printf 'build_id=%s\n' "$build_id"
printf 'build_host_os=debian12\n'
printf 'build_host_os=debian13\n'
printf 'build_host_arch=amd64\n'
printf 'target_os=linux\n'
printf 'target_arch=amd64\n'
printf 'target_distro=debian\n'
printf 'target_version=13\n'
printf 'orchestrator_stack=Bun+TypeScript\n'
printf 'go_version=%s\n' "$($GO_BIN version)"
printf 'bun_version=%s\n' "$($BUN_BIN --version)"