Перейти к содержимому

Секреты репозитория

En Parlant~ использует GitHub Actions для сборки релизных бинарных файлов под Windows, macOS и Linux. CI-пайплайну необходимы учётные данные для подписи кода, подписи обновлений, проверки на вирусы и URL мультиплеерного relay-сервера. Они хранятся как секреты репозитория GitHub — зашифрованные значения, которые GitHub передаёт в процессы выполнения workflow, но никогда не отображает.

Если вы форкнете En Parlant~ и захотите собирать собственные подписанные сборки, вам потребуется настроить свои секреты. Сборки скомпилируются и без них, но бинарные файлы не будут подписаны, обновления не пройдут проверку, а шаг сканирования через VirusTotal будет пропущен.

Пользователи Windows видят предупреждение SmartScreen («Windows защитил ваш компьютер»), когда запускают неподписанный .exe. Подпись кода устраняет это предупреждение и сообщает Windows, что бинарный файл получен от проверенного издателя.

En Parlant~ использует Azure Trusted Signing для этого. Сборка Tauri вызывает trusted-signing-cli на этапе сборки под Windows, который обращается к Azure для подписи исполняемого файла.

СекретНазначение
AZURE_CLIENT_IDID приложения сервисного принципала
AZURE_CLIENT_SECRETУчётные данные сервисного принципала
AZURE_TENANT_IDТенант Azure AD
AZURE_SUBSCRIPTION_IDПодписка Azure
AZURE_CODE_SIGNING_ACCOUNTИмя учётной записи Trusted Signing
AZURE_CODE_SIGNING_ENDPOINTURL эндпоинта Trusted Signing
AZURE_CODE_SIGNING_PROFILEИмя профиля сертификата

Как настроить самостоятельно: Создайте учётную запись Azure, настройте ресурс Trusted Signing, создайте профиль сертификата и зарегистрируйте сервисный принципал с соответствующими разрешениями. Быстрый старт Trusted Signing от Microsoft описывает весь процесс.

Если пропустить этот шаг: Сборки под Windows по-прежнему будут работать, но ваших пользователей встретит тот самый ужасный синий экран SmartScreen — вы знаете, о чём речь. Все мы хоть раз нажимали «Всё равно запустить» и надеялись на лучшее. Сборки под macOS и Linux не затрагиваются.

Встроенный механизм обновлений Tauri проверяет, что обновления поступают от настоящего издателя, а не из подменённого источника. Когда приложение проверяет наличие новой версии, оно загружает обновление и проверяет его подпись с помощью публичного ключа, встроенного в приложение. Приватный ключ, создающий эти подписи, хранится в CI.

СекретНазначение
TAURI_PRIVATE_KEYПриватный ключ Ed25519 для подписи обновлений
TAURI_KEY_PASSWORDПароль, защищающий приватный ключ

Как настроить самостоятельно: Сгенерируйте пару ключей с помощью pnpm tauri signer generate. Поместите приватный ключ и пароль в секреты репозитория, а публичный ключ — в tauri.conf.json в раздел plugins.updater.pubkey.

Если пропустить этот шаг: Приложение соберётся без проблем, но автоматическое обновление работать не будет. Пользователям придётся загружать новые версии вручную.

После сборки релизных артефактов CI-пайплайн загружает каждый бинарный файл (.exe, .dmg, .deb, .rpm, .AppImage) в VirusTotal для автоматической проверки на вредоносное ПО. Это сигнал доверия — пользователи могут убедиться, что официальные сборки чисты.

СекретНазначение
VIRUSTOTAL_API_KEYAPI-ключ для VirusTotal v3 API

Как настроить самостоятельно: Создайте бесплатную учётную запись VirusTotal и скопируйте ваш API-ключ из профиля.

Если пропустить этот шаг: Шаг сканирования VirusTotal завершится с тихой ошибкой. Сборки всё равно соберутся и будут выпущены — просто у вас не будет автоматизированных результатов проверки.

URL мультиплеерного relay-сервера внедряется на этапе сборки, чтобы приложение знало, к какому серверу подключаться для онлайн-игр.

СекретНазначение
VITE_RELAY_URLWebSocket URL мультиплеерного relay-сервера (например, wss://your-relay.fly.dev)

Как настроить самостоятельно: Разверните собственный relay-сервер (см. руководство по настройке мультиплеерного сервера) и укажите его публичный URL.

Если пропустить этот шаг: Мультиплеер всё равно будет работать, если вы укажете URL relay-сервера в настройках приложения во время работы. Этот секрет лишь задаёт значение по умолчанию, чтобы пользователям не приходилось настраивать его вручную.

Группа секретовДля чего требуетсяМожно ли пропустить?
Azure (7 секретов)Подписанные сборки под WindowsДа — сборки работают, пользователи увидят предупреждение SmartScreen
Tauri (2 секрета)Автоматическое обновлениеДа — сборки работают, автообновление недоступно
VirusTotal (1 секрет)Отчёты о проверке на вредоносное ПОДа — сборки работают, результатов проверки не будет
Relay URL (1 секрет)Мультиплеерный сервер по умолчаниюДа — пользователи могут указать URL в настройках приложения

Ни один из этих секретов не требуется для локальной сборки и запуска приложения. Они имеют значение только для CI/CD-сборок релизов.