May 20th, 2026

CI: GPG-подпись релизов Linux и SBOM в pipeline

Что изменилось

Релизный pipeline ROX.ONE получил две ключевые производственные возможности: криптографическую подпись Linux-бинарей и генерацию Bill of Materials для каждого выпуска.

  • GPG-подпись Linux: GitHub Actions workflow автоматически подписывает AppImage для x64 и arm64 при каждом релизе с тегом. Приватный ключ хранится как зашифрованный GitHub Secret, публичный ключ прикладывается к Release assets как rox-one.pub.asc. Fingerprint публикуется в README.
  • SBOM CycloneDX: Software Bill of Materials генерируется через @cyclonedx/cyclonedx-npm и загружается как sbom.cdx.json к каждому релизу. Содержит все прямые и транзитивные зависимости с лицензиями, PURL и версиями.
  • Preflight gate расширен до 16 проверок: GPG-верификация, SBOM-валидация, bundle size budget, locale completeness, smoke-тест запуска, dependency audit (known CVEs), license scan, TypeScript strict compile.
  • Все 16 gate'ов зелёные для RC2 — это жёсткое условие для объявления GA.
  • Workflow вынесен в переиспользуемый composite action: .github/actions/release-sign.

Где попробовать

Откройте страницу GitHub Releases. Рядом с каждым AppImage теперь есть файл .sig. Верифицируйте подлинность:

gpg --import rox-one.pub.ascgpg --verify rox-one-linux-x64.AppImage.sig rox-one-linux-x64.AppImage

SBOM: скачайте sbom.cdx.json и проверьте через cyclonedx-cli validate.

Детали безопасности: GPG ключ 4096-bit RSA хранится как зашифрованный GitHub Secret. При релизе CI импортирует ключ во временный keyring, подписывает артефакты, затем немедленно удаляет — приватный ключ не сохраняется на runner дольше одного job. Публичный ключ и fingerprint опубликованы в README для независимой верификации.

Связанное

Дорожная карта: Упаковка и Релиз, Безопасность и Compliance.