ZapretKVN-android/scripts/prepare-stable-core.sh
loop-uh ba7364bb95
All checks were successful
Android CI / build (push) Successful in 33m40s
Ядро: Hysteria app/v2.13.0 и автоматическая перегенерация серии патчей
Встроенная Hysteria поднята до app/v2.13.0 — версии, выбранной для Windows
0.8.16; заморозка ядер записана для пары Windows 0.8.16 / Android v0.4.11.

- scripts/update_hysteria_core.py выполняет docs/CORE_UPDATE.md сам: во
  временной копии исходников собирает серию цепочкой коммитов, поднимает
  модули Hysteria, разрешает ожидаемый конфликт go.mod версиями обновлённых
  модулей и формирует новые патчи. В репозиторий пишет, только если прежние
  патчи воспроизводятся байт в байт, go mod tidy -diff не требует изменений
  go.mod и затронутые пакеты компилируются с боевыми тегами; иначе отказывает
  без записи.
- scripts/prepare-stable-core.sh готовит ядра к стабильному релизу одной
  командой: берёт последний стабильный тег Windows и запускает общую
  подготовку, которая при отставании Android вызывает перегенерацию сама.
- Патчи 0003–0005, series.sha256, пины и уведомления о сторонних компонентах
  получены этим скриптом; результат совпал с ручным прогоном процедуры.

libbox.aar пересобран, тесты ядра (включая protocol/hysteria2) и
verify-project.sh проходят.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 00:36:36 +03:00

38 lines
1.7 KiB
Shell
Executable file
Raw Permalink 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.

#!/usr/bin/env bash
set -euo pipefail
# Подготовка ядер к стабильному релизу Android одной командой.
#
# Версии ядер у Windows и Android замораживаются парой. Скрипт сам находит
# последний стабильный релиз Windows и запускает общую подготовку: она сверяет
# upstream, при отставании Android перегенерирует серию патчей Hysteria
# (scripts/update_hysteria_core.py) и записывает core-release-freeze.json в оба
# репозитория. Ничего не коммитит и не публикует: изменения нужно проверить
# сборкой и закоммитить до тега.
#
# scripts/prepare-stable-core.sh v0.4.11
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TAG="${1:-}"
WINDOWS_ROOT="${ZAPRET_WINDOWS_ROOT:-$PROJECT_ROOT/../windows}"
if [[ ! "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Usage: $0 vMAJOR.MINOR.PATCH" >&2
exit 2
fi
[[ -f "$WINDOWS_ROOT/scripts/prepare_core_release.py" ]] || {
echo "Windows repository not found: $WINDOWS_ROOT (set ZAPRET_WINDOWS_ROOT)" >&2
exit 1
}
git -C "$WINDOWS_ROOT" fetch --quiet --tags origin
WINDOWS_TAG="$(git -C "$WINDOWS_ROOT" tag --list 'v[0-9]*.[0-9]*.[0-9]*' --sort=-v:refname | head -n 1)"
[[ "$WINDOWS_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] || {
echo "No stable Windows tag found in $WINDOWS_ROOT" >&2
exit 1
}
exec python3 "$WINDOWS_ROOT/scripts/prepare_core_release.py" \
--windows-version "${WINDOWS_TAG#v}" \
--android-tag "$TAG" \
--android-root "$PROJECT_ROOT"