Skip to content

runtime-smoke の検査が落ちても、継続的統合の画面に理由が出ない(smoke.log にしか残らない) #577

Closed

Description

@takemi-ohama

何を見つけたか

runtime-smoke のアダプタの中で検査が失敗しても、継続的統合の画面には失敗の理由が出ない。
scripts/runtime-smoke-test.sh はアダプタの出力をすべて smoke.log へ書き込んでおり、画面に出るのは
==> runtime smoke: <runtime> と Process completed with exit code 1 だけになる。理由を読むには
成果物 runtime-smoke-<runtime> をダウンロードして smoke.log を開く必要がある。

# 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 が返る。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ci継続的統合とワークフローenhancementNew feature or requestpriority: low文書のみ・低頻度など、余力があれば対応する

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions