## 何を見つけたか `runtime-smoke` のアダプタの中で検査が失敗しても、継続的統合の画面には失敗の理由が出ない。 `scripts/runtime-smoke-test.sh` はアダプタの出力をすべて `smoke.log` へ書き込んでおり、画面に出るのは `==> runtime smoke: <runtime>` と `Process completed with exit code 1` だけになる。理由を読むには 成果物 `runtime-smoke-<runtime>` をダウンロードして `smoke.log` を開く必要がある。 ```bash # scripts/runtime-smoke-test.sh の run_runtime(174〜175 行目) docker exec "$cid" bash -lc '...; "/workspace/ai-plugins/tests/runtime-smoke/adapters/${RUNTIME}.sh"' \ >"$runtime_artifacts/smoke.log" 2>&1 ``` `set -euo pipefail` のもとでこの行が失敗すると、直後の `generated-tree.txt` の書き出しと成果物の `docker cp` も実行されないまま終わる(`smoke.log` はホスト側へ直接書かれるため残る)。 ## どこで見つけたか `scripts/runtime-smoke-test.sh` の `run_runtime`。issue #571 の設計で、hooks 定義の検査の失敗理由を どこへ出すかを決める際に読んだ。 ## なぜこの変更の範囲外なのか #571 の受け入れ条件は「失敗したとき `smoke.log` に報告の行が出る」までで、画面への表示を含まない。 既存のすべてのアサーションに共通する性質で、#571 の検査を足しても変わらない。 ## 直さないと何が起きるか `runtime-smoke` が落ちた Pull Request の作者が、成果物を取りに行くまで原因が分からない。検査が増える ほど、どの検査で落ちたかを画面から判別できない場面が増える。 ## 由来 issue #571 ## 結果 PR #1106(d93b04a8、ndf v10.17.23 に収録)で直っている。`scripts/runtime-smoke-test.sh` の `run_runtime` は、アダプタが失敗すると `smoke.log` の末尾 60 行を `::error::` の後に標準エラーへ出し、成果物の書き出しまで進めてからアダプタの終了コードを返す。docker をスタブにした実行(アダプタの終了コード 7)で、`::error::runtime smoke: codex が失敗した(終了コード 7)` とログの末尾が出て、終了コード 7 が返る。
Activity