Skip to content

ci: 缓存固定 Hermes 编译器和 fixtures,限制报告保留期 - #92

Merged
sunnylqm merged 1 commit into
masterfrom
ci/cache-pinned-hermes-fixtures-20260928
Sep 28, 2026
Merged

sunnylqm merged 1 commit into
masterfrom
ci/cache-pinned-hermes-fixtures-20260928

Conversation

@sunnylqm

@sunnylqm sunnylqm commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

改动

  • 缓存三个固定编译器包,key 包含 OS、架构及完整 npm 包版本;HBC 98 的 .16 / .17 绝不共用缓存,且不使用前缀回退。
  • 命中缓存仍验证 package.json 的完整包名/版本、可执行文件及实际 HBC 版本。
  • 按固定提交缓存 Metro fixtures;每次运行(包括缓存命中)仍执行两份 SHA-256 校验并检查 LICENSE。
  • coverage 和失败 fuzz 样本显式保留 7 天。

保持不变

全部 7 个任务实例、Node 18.17 smoke、三个 Hermes 矩阵、真实编译器回归、50 轮 seeded fuzz、原校验哈希和发布 dry-run 均保留。没有执行发布或清理已有远端产物。

验证

  • 本地原始工作流 Git blob SHA 与读取的 master 一致。
  • YAML 解析与所有 shell 步骤 bash -n 通过。
  • 对比断言确认 lint、Node 18、publish-dry-run 完全不变,Hermes matrix 和测试命令保留。
  • 完整仓库测试及缓存命中耗时以本 PR 的 Actions 为准;尚未宣称远端 CI 或实际节省量。

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Summary by CodeRabbit

  • Chores
    • Automated test runs can reuse cached compiler and test fixtures, while continuing to verify the compiler package and fixture checksums.
    • Coverage reports and failing fuzz-case artifacts are retained for seven days, making recent test results available for review.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: e16734e5-57a2-4c62-828b-9bbb20c24de1

📥 Commits

Reviewing files that changed from the base of the PR and between 9ed61b4 and 5102a9e.

📒 Files selected for processing (1)
  • .github/workflows/test.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The test workflow caches the pinned Hermes compiler and Metro fixtures, verifies compiler identity and fixture checksums, and retains coverage and failing fuzz-case artifacts for 7 days.

Changes

Test workflow updates

Layer / File(s) Summary
Test inputs and artifact handling
.github/workflows/test.yml
The workflow installs the pinned compiler and downloads Metro fixtures only on cache misses. It validates the compiler package identity and executable on every run, and checks fixture checksums on cache hits and misses. Coverage and failing fuzz-case artifacts have a 7-day retention period.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 5102a

The caching and retention changes have no identified merge-blocking issue; normal CI validation remains appropriate.

Architecture Summary

Architecture risk: 🔵 Low · up to 5102a

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/test.yml: The coverage artifact upload now specifies a 7-day retention period.
  • observed — Modified behavior in .github/workflows/test.yml: The compiler package is cached by OS, architecture, and full package version. On a cache miss, the workflow packs and extracts the pinned package; on every run, it verifies the package name and version, executable presence, and expected HBC version before exporting HERMESC.
  • observed — Modified behavior in .github/workflows/test.yml: Metro fixtures and their license are cached under a pinned key. Downloads occur only on a cache miss; the existing fixture checksum checks remain unconditional, including on cache hits.
  • observed — Modified behavior in .github/workflows/test.yml: The failing fuzz-case artifact upload now specifies a 7-day retention period.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: caching pinned Hermes compiler packages and fixtures, and limiting report retention.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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.

@sunnylqm
sunnylqm merged commit 836d9fc into master Sep 28, 2026
9 checks passed
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.

1 participant