fix: manifest SHA256 from git blobs (CRLF/LF) — release 2.2.2-SAC

Manifest was hashed from Windows working tree while Linux checkout uses
git blobs; verify failed with sha256 mismatch. build-release-manifest.sh
now hashes :index/HEAD; .gitattributes enforces LF for agent scripts.
This commit is contained in:
2026-07-08 12:00:51 +10:00
parent 6df83f1838
commit 0399a6d384
7 changed files with 50 additions and 13 deletions
+5 -5
View File
@@ -91,13 +91,13 @@ Updater читает **`GIT_REF`**, **`GIT_VERIFY_MODE`**, **`GIT_ALLOW_RESET`**
- Файл не найден → WARN, update продолжается (или exit 1 при **`RELEASE_MANIFEST_STRICT=1`**).
- Копирование **`update_ssh_monitor.sh`** в `/opt/scripts/` и re-exec — только если manifest для версии был и прошёл verify.
Генерация при релизе (после **финального** коммита кода, чтобы `git_commit` в manifest совпал с HEAD):
Генерация при релизе (хеши **из git**, как на Linux после `checkout` — не с диска Windows):
```bash
git commit -m "release: 2.2.0-SAC"
./scripts/build-release-manifest.sh 2.2.0-SAC
git add release/manifest-2.2.0-SAC.json && git commit -m "release: manifest 2.2.0-SAC"
git tag 2.2.0-SAC
git add --renormalize ssh-monitor *.sh # при смене .gitattributes
./scripts/build-release-manifest.sh 2.2.2-SAC
git add release/manifest-2.2.2-SAC.json && git commit -m "release: manifest 2.2.2-SAC"
git tag 2.2.2-SAC
```
### Примеры для прода