Skip to content

feat: ジョブサマリに導入結果を出力(NFR-5)#50

Merged
yk-lab merged 3 commits into
mainfrom
feat/job-summary
Jun 22, 2026
Merged

feat: ジョブサマリに導入結果を出力(NFR-5)#50
yk-lab merged 3 commits into
mainfrom
feat/job-summary

Conversation

@yk-lab

@yk-lab yk-lab commented Jun 22, 2026

Copy link
Copy Markdown
Owner

概要

要求仕様書 NFR-5(可観測性)に対応。アクション完了時に core.summary で導入結果をジョブサマリに出力する。

変更内容

src/main.ts

  • 実行中にサマリ用の情報(バージョン、アセット、cache、checksum、パス)を収集
  • アクション成功時に core.summary で表形式のサマリを記録
  • トークンは core.setSecret でマスク済みのため、サマリに漏れない

ワークフロー修正(#49 フォローアップ、レビュー指摘対応)

  • ci.yml / self-test.yml の bridge job (*-gate) が changes job の失敗・キャンセルを正しく検出するよう修正
  • self-test.ymlpull-requests: read を追加(dorny/paths-filter 用)

サマリに含まれる項目

Item
Version 3.51.1
Asset task_linux_amd64.tar.gz
Source go-task/task GitHub Releases
Cache hit / miss
Checksum verified (SHA256) / skipped / n/a
Executable /runner/tool-cache/task/3.51.1/x64/task

注意点

  • エラー発生時はこれまで通り core.setFailed で終了。サマリは成功時にのみ出力。
  • core.summary.write() 自体の失敗は考慮していない(Actions API の失敗は極めて稀)。

検証

  • pnpm run all
  • actionlint
  • dist/index.js が再ビルド済み(source branch には commit しない方針)

参照

@coderabbitai

coderabbitai Bot commented Jun 22, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@yk-lab, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 48 minutes and 6 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits.

🚦 How do rate limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b6605634-39c4-436b-8879-526827ba2d80

📥 Commits

Reviewing files that changed from the base of the PR and between 3fe163a and 766a51c.

⛔ Files ignored due to path filters (2)
  • .github/workflows/ci.yml is excluded by !**/*.yml
  • .github/workflows/self-test.yml is excluded by !**/*.yml
📒 Files selected for processing (1)
  • src/main.ts
📝 Walkthrough

Walkthrough

src/main.tsrun() 関数内に実行状態を集約する summary オブジェクトを追加し、各処理ステップで値を更新した後、core.summary を用いて表形式のジョブサマリを出力するように変更。あわせて TODO.md の Issue #8 を解決済みに移動。

Changes

ジョブサマリ出力の実装

Layer / File(s) Summary
summary オブジェクトの導入と各ステップでの値反映
src/main.ts
version/asset/source/cache/checksum/path を持つ summary オブジェクトを初期化し、asset 解決・バージョン解決・キャッシュ判定・チェックサム検証・binPath の各処理点で値を更新する。
core.summary によるジョブサマリ出力
src/main.ts
集約した summary オブジェクトの内容を「Setup Task」見出しと表形式(Version/Asset/Source/Cache/Checksum/Executable)で core.summary に書き出す。

TODO.md の Issue #8 解決済み移動

Layer / File(s) Summary
Issue #8 の解決済み移動
TODO.md
Backlog の「未対応・進行中」テーブルから Issue #8 行を削除し、「既に解決した Issue」テーブルに解決 PR #46 / #47`` を追記する。

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 ジョブが終わったら表を見て、
バージョン・キャッシュ・チェックサムも揃え、
core.summary にぴょんと書き込む。
Issue #8 も解決済み、
うさぎは今日もすっきり跳ねる! 🎉

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PRのタイトルはNFR-5に対応したジョブサマリ出力機能を明確に述べており、変更内容の主要な目的を適切に要約している。
Description check ✅ Passed テンプレートの全必須セクション(概要、関連issue、テストプラン)が適切に記入されており、変更内容が詳細に説明されている。
Linked Issues check ✅ Passed PR実装がIssue #39の受け入れ条件を満たしている。バージョン、アセット、取得元、キャッシュ状態、チェックサム検証結果、実行ファイルパスの表形式での出力が確認される。
Out of Scope Changes check ✅ Passed TODO.mdの更新とsrc/main.tsの変更は、両方ともIssue #39のジョブサマリ実装機能に直接関連しており、スコープ外の変更は見当たらない。

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/job-summary

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Jun 22, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 62.92%. Comparing base (72349b8) to head (766a51c).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/main.ts 0.00% 8 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #50      +/-   ##
==========================================
- Coverage   65.88%   62.92%   -2.97%     
==========================================
  Files           9        9              
  Lines         170      178       +8     
  Branches       50       51       +1     
==========================================
  Hits          112      112              
- Misses         51       59       +8     
  Partials        7        7              
Files with missing lines Coverage Δ
src/main.ts 0.00% <0.00%> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3 issues found across 5 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/self-test.yml
Comment thread .github/workflows/self-test.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/main.ts`:
- Around line 124-136: The comment "// 8. Job summary (NFR-5)" incorrectly
introduces an 8th step to the fixed 7-step pipeline contract defined in
src/main.ts, which violates the established pipeline sequence (resolve version →
tool-cache lookup → download → checksum → extract+cache → chmod+addPath →
outputs). The core.summary block that adds the job summary table should not be
numbered as a new step but instead should be clearly marked as post-processing
output outside the 7-step pipeline. Remove the "8." numbering from the comment
and rephrase it to indicate this is post-processing (for example, "// Job
summary (post-processing)" or "// Job summary output") to maintain alignment
with the fixed pipeline contract and prevent future maintenance confusion.
- Around line 125-136: The core.summary.write() method call at the end of the
summary chain is missing an await keyword. Since run() is an async function and
core.summary.write() returns a Promise, you must add await before the entire
method chain (core.summary.addHeading().addTable().write()) to ensure the
asynchronous file I/O operation completes before the function continues
execution.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 2d089b4d-2bf9-42b3-8d94-a8eaae10992f

📥 Commits

Reviewing files that changed from the base of the PR and between 72349b8 and 3fe163a.

⛔ Files ignored due to path filters (3)
  • .github/workflows/ci.yml is excluded by !**/*.yml
  • .github/workflows/docs.yml is excluded by !**/*.yml
  • .github/workflows/self-test.yml is excluded by !**/*.yml
📒 Files selected for processing (2)
  • TODO.md
  • src/main.ts

Comment thread src/main.ts Outdated
Comment thread src/main.ts Outdated
yk-lab added 3 commits June 23, 2026 02:44
- core.summary にバージョン・アセット・取得元・cache・checksum・実行ファイルパスを表形式で記載

- cache hit 時は checksum を n/a、skip-checksum 時は skipped、通常時は verified と表示
- ci.yml check-gate: changes / check の failure/cancelled を両方確認

- self-test.yml self-test-gate: changes / matrix / skip-checksum の failure/cancelled を確認

- self-test.yml: dorny/paths-filter 用に pull-requests: read を追加
- core.summary.write() returns a Promise; await it in the async run() function

- Rephrase the comment so it does not introduce an 8th step to the fixed 7-step pipeline
@yk-lab yk-lab force-pushed the feat/job-summary branch from 7141cf4 to 766a51c Compare June 22, 2026 17:44
@yk-lab yk-lab merged commit 6835b52 into main Jun 22, 2026
18 of 19 checks passed
@yk-lab yk-lab deleted the feat/job-summary branch June 22, 2026 17:46
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.

[enhancement] ジョブサマリに導入結果を出力(NFR-5)

1 participant