リポジトリシークレット
En Parlant~ は GitHub Actions を使用して、Windows、macOS、Linux 向けのリリースバイナリをビルドしています。CI パイプラインには、コード署名、アップデート署名、ウイルススキャン、およびマルチプレイヤーリレー URL のための認証情報が必要です。これらは GitHub リポジトリシークレット として保存されています。GitHub がワークフローの実行時に注入する暗号化された値で、表示されることはありません。
En Parlant~ をフォークして独自の署名付きビルドを作成したい場合は、自分自身のシークレットを設定する必要があります。シークレットがなくてもビルド自体はコンパイルできますが、バイナリは署名されず、アップデートの検証もできず、VirusTotal スキャンステップはスキップされます。
シークレット一覧
Section titled “シークレット一覧”Azure Trusted Signing(Windows コード署名)
Section titled “Azure Trusted Signing(Windows コード署名)”Windows ユーザーは、署名されていない .exe を実行すると SmartScreen の警告(「Windows によって PC が保護されました」)が表示されます。コード署名によってこの警告を解消し、バイナリが検証済みの発行者から提供されたものであることを Windows に伝えることができます。
En Parlant~ では、この目的で Azure Trusted Signing を使用しています。Tauri のビルドは Windows ビルドステップ中に trusted-signing-cli を呼び出し、Azure と通信して実行ファイルに署名します。
| シークレット | 用途 |
|---|---|
AZURE_CLIENT_ID | サービスプリンシパルのアプリ ID |
AZURE_CLIENT_SECRET | サービスプリンシパルの認証情報 |
AZURE_TENANT_ID | Azure AD テナント |
AZURE_SUBSCRIPTION_ID | Azure サブスクリプション |
AZURE_CODE_SIGNING_ACCOUNT | Trusted Signing アカウント名 |
AZURE_CODE_SIGNING_ENDPOINT | Trusted Signing エンドポイント URL |
AZURE_CODE_SIGNING_PROFILE | 証明書プロファイル名 |
自分で設定する場合: Azure アカウントを作成し、Trusted Signing リソースをセットアップし、証明書プロファイルを作成し、適切な権限を持つサービスプリンシパルを登録してください。Microsoft の Trusted Signing クイックスタート に手順が記載されています。
スキップした場合: Windows ビルドは動作しますが、ユーザーにはあの恐ろしい青い SmartScreen の死の画面が表示されます。誰もが一度は見たことがあるでしょう。「実行」をクリックして最善を祈った経験は皆さんにもあるはずです。macOS と Linux のビルドには影響しません。
Tauri アップデート署名
Section titled “Tauri アップデート署名”Tauri の組み込みアップデーターは、アップデートが改ざんされたソースではなく正規の発行者から提供されたものであることを検証します。アプリが新しいバージョンをチェックする際、アップデートをダウンロードし、アプリに埋め込まれた公開鍵に対してその署名を検証します。その署名を作成する秘密鍵は CI に保存されています。
| シークレット | 用途 |
|---|---|
TAURI_PRIVATE_KEY | アップデート署名用の Ed25519 秘密鍵 |
TAURI_KEY_PASSWORD | 秘密鍵を保護するパスワード |
自分で設定する場合: pnpm tauri signer generate でキーペアを生成してください。秘密鍵とパスワードをリポジトリシークレットに設定し、公開鍵を tauri.conf.json の plugins.updater.pubkey に配置してください。
スキップした場合: アプリは正常にビルドできますが、自動アップデーターは動作しません。ユーザーは新しいバージョンを手動でダウンロードする必要があります。
VirusTotal
Section titled “VirusTotal”リリースアーティファクトのビルド後、CI パイプラインはすべてのバイナリ(.exe、.dmg、.deb、.rpm、.AppImage)を VirusTotal にアップロードして自動マルウェアスキャンを実行します。これは信頼のシグナルであり、ユーザーは公式ビルドがクリーンであることを確認できます。
| シークレット | 用途 |
|---|---|
VIRUSTOTAL_API_KEY | VirusTotal v3 API の API キー |
自分で設定する場合: VirusTotal の無料アカウントを作成し、プロフィールから API キーをコピーしてください。
スキップした場合: VirusTotal スキャンステップはサイレントに失敗します。ビルドは成功し、通常通りリリースされます。自動スキャン結果が得られないだけです。
マルチプレイヤーリレー URL
Section titled “マルチプレイヤーリレー URL”マルチプレイヤーリレーサーバーの URL はビルド時に注入され、アプリがオンラインゲーム用にどこに接続すべきかを知ることができます。
| シークレット | 用途 |
|---|---|
VITE_RELAY_URL | マルチプレイヤーリレーの WebSocket URL(例: wss://your-relay.fly.dev) |
自分で設定する場合: 独自のリレーサーバーをデプロイし(マルチプレイヤーサーバーのセットアップガイド を参照)、その公開 URL を設定してください。
スキップした場合: マルチプレイヤーは、実行時にアプリの設定でリレー URL を設定すれば引き続き動作します。このシークレットはデフォルト値を設定するだけなので、ユーザーが手動で設定する必要がなくなります。
| シークレットグループ | 必要な用途 | スキップ可能か? |
|---|---|---|
| Azure(7 つのシークレット) | 署名付き Windows ビルド | はい — ビルドは動作しますが、ユーザーに SmartScreen 警告が表示されます |
| Tauri(2 つのシークレット) | 自動アップデーター | はい — ビルドは動作しますが、自動アップデートはできません |
| VirusTotal(1 つのシークレット) | マルウェアスキャンレポート | はい — ビルドは動作しますが、スキャン結果はありません |
| リレー URL(1 つのシークレット) | デフォルトのマルチプレイヤーサーバー | はい — ユーザーがアプリの設定で設定できます |
これらのシークレットはいずれも、アプリをローカルでビルド・実行する際には必要ありません。CI/CD のリリースビルドでのみ必要になります。