ビルドとデプロイ
ネイティブアプリケーション
go tool mygo doctor
go tool mygo build
go tool mygo build -skip-dmg
go tool mygo build -platform darwin/universal,windows/amd64,linux/amd64出力先は build/ です。ローカル macOS ビルドはアドホック署名を使い、外部配布には Developer ID、署名設定、公証が必要です。Windows インストーラーにも署名方針が必要です。Linux デスクトップ実行には GTK 3 が必要です。
CI は macOS でレーステスト、Go vet、MyGo vet を実行し、Windows/Linux をクロスコンパイルして macOS をパッケージ化します。バイナリのコンパイル成功だけではデスクトップ統合を検証したことになりません。
既存の手動 Release ワークフローは安定版バージョンを受け取り、tools/version で internal/buildinfo/version.go と mygo.json を更新し、パッケージをビルド・検証してリリースコミットとタグを作成し、GitHub release の成果物を公開します。リポジトリの書き込み権限と対応するブランチ保護が必要です。ロードマップの受け入れ基準を満たすまで本番リリースとして実行しないでください。本番署名と信頼する更新フィード/鍵は未設定です。必要なビルド入力があれば MyGo マニフェスト互換の署名付き更新を準備でき、なければ GitHub releases の確認と手動ダウンロードにフォールバックします。
ドキュメント
ドキュメントサイトのビルドとデプロイのワークフローは削除されました。リポジトリにはサイトのビルド、型検査、公開を行う GitHub Actions ジョブはありません。ローカルの VitePress 開発、型検査、ビルドは引き続き利用できます。コマンドは開発ガイドを参照してください。ビルド出力は docs/.vitepress/dist です。
既存のサイト設定では、引き続き oss-browser.ntnyq.dev をサイトマップ URL に使用し、docs/public/CNAME をビルド出力にコピーします。これらの設定だけではサイトはデプロイされません。公開する場合は、ホスティングとデプロイの手順、ドメイン、DNS、HTTPS を別途設定する必要があります。
アップグレード時の検査
MyGo を変更したら Go テスト、レース検査、両方の vet、スナップショット、ネイティブの受け入れテストを実行します。ドキュメントの依存関係を変更したらロックファイルを再生成し、型検査とビルドを実行します。
受け入れの引き継ぎ(2026-10-14)
所有者が OSS アカウント、Windows/Linux 環境、署名設定を後日提供します。SDK のモックテストやクロスコンパイルだけで合格扱いにしないでください。
| 環境 | 必要な証拠 | 状態 |
|---|---|---|
| 使い捨て OSS Bucket | AK/STS と認証コードの範囲・期限、Endpoint モード、ページ分割、公開/非公開 ACL、メタデータ、リンク、コピー/移動/削除 | アカウント待ち |
| 使い捨て OSS Bucket | 大容量転送の中断、再起動/再接続からの復旧、元データ変更、CRC 失敗、バージョニング有効/無効時の競合 | アカウント待ち |
| macOS | 実ダイアログ、Keychain の保存許可/読込/削除、Unicode パス、スリープ/通信中断、署名付きインストール | arm64 の起動/キャプチャのスモークテストは合格。他の統合と本番署名は未確認 |
| Windows | Credential Manager、ファイル置換、予約名、インストール/削除、拡大率、ダイアログ | 環境待ち |
| Linux | GTK ダイアログ、Secret Service の利用不可/ロック/解除、シンボリックリンク、インストール/削除 | 環境待ち |
| 配布 | Developer ID と公証、Windows 署名、出所証明/チェックサム、リリース成果物、HTTPS ドキュメント | 署名とリリース設定待ち |
CI には macOS スイートに加えて Windows と Linux 上のテストも含まれます。これらのジョブはローカルで設定したもので、リモート CI が合格した証拠ではありません。実際のデスクトップ受け入れは別途必要です。
署名付き macOS ビルドでは MyGo の macos.signingIdentity(または -sign)と macos.notarize.keychainProfile を使えます。Windows は windows.certificate または設定済み署名コマンドを使います。証明書、キーチェーンプロファイル、パスワードはリポジトリ外に置き、Release の実行前に設定を提供して検証してください。ローカルのアドホック署名は開発ビルド専用です。
現在のリリース候補の範囲と制限ははじめにに記載しています。RAM/STS、SMTP、QR、シンボリックリンク、アーカイブなどの Design v2 シーン群は実装済みです。正確なコードと受け入れ証拠はシーン台帳を参照してください。実サービスでの受け入れは引き続き必要です。
署名付き更新の設定
コンパイル前に mygo.json の updates.publicKey と updates.github を設定します。これらの公開値はアプリに埋め込まれます。固定バージョンの MyGo アップデーター資料に従い、MYGO_UPDATER_PRIVATE_KEY は保護されたリリース用シークレットのみから提供します。公開鍵は発行者が管理する署名鍵に対応する必要があります。生成された各プラットフォームのマニフェストと更新アーカイブを、リリースパッケージと一緒に公開します。使い捨てインストールで署名検証、ダウンロード中断、ロールバック/失敗、再起動復旧を確認するまでフィードを公開しないでください。必要な入力と成果物が揃うまでは、Release は手動パッケージのワークフローです。
自動更新は完全なアーカイブを所有者のみアクセスできる一時ファイルに取得し、署名された SHA-256 ダイジェストを検証します。準備完了後もインストールは明示操作が必要です。インストール時はファイルを再検証し、再ダウンロードしません。キャンセルや検証失敗では準備完了になりません。差分アーカイブは使用しません。macOS は対応するアプリバンドルを置き換えて失敗時にロールバックし、Windows/Linux はバックアップ付きでアーカイブの項目を置き換えます。Windows は旧実行ファイルの起動中にバックアップを保持する場合があります。各対象 OS の使い捨て署名付きインストールで、これらの処理と再起動を検証してください。
デスクトップの公開入口は 1 つ
手動の GitHub Release ワークフローが唯一の公開入口です。pnpm release は GitHub CLI で入力プロンプトを開きます。明示的には次を実行します。
gh workflow run release.yml -f version=0.2.0ルートの package.json は非公開のツール用パッケージです。0.0.0 はデスクトップリリースと無関係で、npm のバージョンを上げてもアプリは公開されません。
ファイルを変更せずローカルでバージョンを検査します。
go run ./tools/versionタグ、コミット、リリースを作らずに予定の安定版バージョンを同期します。
go run ./tools/version -set 0.2.0ワークフローはパッケージ化前にタグの一意性、バージョンの単調増加、既定ブランチの先頭が変更されていないことも確認します。Go のバージョンと MyGo のパッケージメタデータが不一致なら、CI とリリース検証の両方が失敗します。