Skip to content

ci: nightly の OpenCV artifact 検査を名前で引くようにする - #84

Merged
ayutaz merged 1 commit into
mainfrom
claude/ayutaz-repos-audit-improve-cyfb5i
Oct 1, 2026
Merged

ayutaz merged 1 commit into
mainfrom
claude/ayutaz-repos-audit-improve-cyfb5i

Conversation

@ayutaz

@ayutaz ayutaz commented Sep 30, 2026

Copy link
Copy Markdown
Owner

概要

nightly の OpenCV artifact is still fetchable job が毎晩失敗し、6 platform すべてを「gone or expired」と報告していました。ですが実物の artifact は 6 件とも存在しており、この失敗は誤報です。検査で artifact を探す方法が原因だったため、探し方を修正しました。変更は .github/workflows/nightly.yml の 1 step だけです。

変更内容

  • 9f20289 ci: nightly の OpenCV artifact 検査を名前で引くようにする
    • 原因: gh api repos/.../actions/artifacts?per_page=100 をフィルタ無しで呼んでいたため、リポジトリ全体の artifact を新しい順に 100 件しか見ていませんでした。test-results などが積もって OpenCV の artifact が 1 ページ目から押し出された時点から、存在するものを「無い」と報告するようになっていました。
    • 修正: ?name=<URL エンコードした名前>&per_page=100 で、名前で絞り込んで取得するようにしました。tools/opencv.ps1 restore がすでに使っているのと同じ方法です(restore を使う他の nightly job は green でした)。

確認したこと

  • artifact の実物: build-opencv run 34699511493(v0.4.0)の 6 artifact(opencv-5.0.0-<platform>-<hash>。エラーに出ていた名前と完全に一致)は、すべて expired: false、expires_at: 2026-12-11(retention 90 日)でした。
  • nightly の失敗状況: 4 job のうち失敗していたのは OpenCV artifact is still fetchable だけでした。
  • ローカルで実行したコマンドと結果:
    • actionlint(1.7.12、CI と同じ版): 全 workflow でエラーなし
    • pwsh tools/dev.ps1 test-tools(PowerShell 7.4.6): 7 スクリプトすべて OK、PASS 627 / FAIL 0(nightly.yml の修正後に実行。OpenCvConfig.Tests は workflow も検査します)
    • dotnet test bindings/generator/Ocvu.Generator.Tests(.NET SDK 8.0.131): 116/116 pass(修正前・修正後とも)
    • dotnet run --project bindings/generator/Ocvu.Generator -- --repo-root . --check: 生成物は spec と一致(23 ファイル、exit 0)

未確認・注意点

  • 修正した workflow は実際には実行していません(dispatch もしていません)。この修正が効くかどうかは、main に入ったあとの nightly で確認する必要があります。
  • コミット本文には「2026-09-21 以降毎晩赤く」と書きましたが、これは実際より短い期間です。nightly は少なくとも 2026-09-16(run ci: bump actions/download-artifact from 4 to 8 #21)から毎日失敗しています。
  • CLAUDE.md の手順 3 にある全レーンのローカル実行(tools/dev.ps1 test)は行っていません。
    • L1(GoogleTest)、L2(ASan)、L3(managed)は、この環境から OpenCV artifact を取得できないため実行していません。
    • L4 / L5 / Web(Unity)は、Unity エディタもライセンスも無いため実行していません。
  • CLAUDE.md の手順 4 に定める「差分を書いていない別エージェントによる AI レビュー」は、この PR については記録がありません。

残課題(この PR の範囲外)

  • この修正が main に入ったら、翌朝の nightly が green になることを確認してください。現状は毎日誤報で赤くなっているため、本当に artifact が失効したときに気づけません。
  • 同じ step は 2>$null で gh のエラー(レート制限など)も握りつぶし、「missing」と報告します。API エラーと「本当に無い」場合を区別すれば、誤報をさらに減らせます。
  • Dependabot の PR(ci: bump game-ci/unity-builder from 5.0.1 to 6.0.0 #81 game-ci/unity-builder v6、test: Bump Microsoft.NET.Test.Sdk from 18.9.0 to 18.10.1 #83)は、Dependabot の run に Actions secrets が渡らないため、Unity レーンが必ず Missing Unity License File で失敗します。人が同じ内容のブランチで CI を回すか、Dependabot secrets に Unity ライセンスを登録してから判断してください。

🤖 Generated with Claude Code

https://claude.ai/code/session_01Q1NCU9ZJ728AvdcQ1tjkdw


Generated by Claude Code

`OpenCV artifact is still fetchable` は 2026-09-21 以降毎晩赤く、
6 platform すべてを "gone or expired" と報告していた。**実物は 6 件とも
在る** —— run 34699511493(v0.4.0 の build-opencv)の artifact は
expired=false、expires_at は 2026-12-11(retention 90 日)。

原因は探し方で、`actions/artifacts?per_page=100` はリポジトリ全体の
artifact を新しい順に 100 件しか返さない。test-results などが積もって
OpenCV の artifact が 1 ページ目から押し出された時点で、在るものを
「無い」と言うようになっていた。`tools/opencv.ps1 restore` は以前から
`?name=` で絞り込んで 1 回で引いているので、同じ引き方にそろえた。

actionlint 1.7.12 と `dev.ps1 test-tools`(7 本、PASS 627 / FAIL 0)を
ローカルで通した。workflow を実際に走らせての確認はしていない。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q1NCU9ZJ728AvdcQ1tjkdw
@ayutaz
ayutaz merged commit db52ea5 into main Oct 1, 2026
42 checks passed
@ayutaz
ayutaz deleted the claude/ayutaz-repos-audit-improve-cyfb5i branch October 1, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants