コンテンツにスキップ

CI 統合プロファイリング

CI 統合プロファイリングは、ビルドパイプラインから自動でパフォーマンステレメトリを収集し、リグレッションを検出する機能です。

  1. CI ビルド — ゲームのビルドを作成
  2. 自動テスト — 事前定義されたシナリオを自動実行
  3. テレメトリ収集 — SDK がパフォーマンスデータを Framedash に送信
  4. 比較分析 — 前回のビルドとパフォーマンスを自動比較
  5. アラート — 閾値を超えるリグレッションが検出されたら通知

SDK の初期化時に build_id を CI 環境変数から設定します。

TelemetrySDK.Initialize(
apiKey: Environment.GetEnvironmentVariable("FRAMEDASH_API_KEY"),
buildId: Environment.GetEnvironmentVariable("CI_COMMIT_SHA"));
if (auto* Subsystem = GetGameInstance()->GetSubsystem<UFramedashSubsystem>())
{
FString ApiKey = FPlatformMisc::GetEnvironmentVariable(TEXT("FRAMEDASH_API_KEY"));
FString BuildId = FPlatformMisc::GetEnvironmentVariable(TEXT("CI_COMMIT_SHA"));
// EndpointUrl に空文字列を渡してデフォルト値を使用
Subsystem->InitializeTelemetry(ApiKey, TEXT(""), BuildId);
}

各マップ/エリアを巡回するテストシナリオを作成し、一貫したデータを収集します。

ダッシュボードで閾値を設定:

  • FPS が前回ビルドから 10% 以上低下
  • フレームタイムが 33ms を超過
  • メモリ使用量が前回ビルドから 20% 以上増加
  • プルリクエストのパフォーマンスチェック — マージ前にリグレッションを検出
  • ナイトリービルドの監視 — 毎日のビルドを自動プロファイリング
  • リリース前の品質ゲート — パフォーマンス基準を満たさないビルドをブロック