Skip to content

CI: cross-OS Test262 suite cache + action/tool version bumps#2687

Merged
lahma merged 1 commit into
sebastienros:mainfrom
lahma:ci/test262-cache-and-actions
Jul 14, 2026
Merged

CI: cross-OS Test262 suite cache + action/tool version bumps#2687
lahma merged 1 commit into
sebastienros:mainfrom
lahma:ci/test262-cache-and-actions

Conversation

@lahma

@lahma lahma commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

A focused, structure-preserving subset of #2661no sharding, so the workflow keeps one job per OS (the linux / linux - ARM / windows / macos checks are unchanged and still report).

Caching fix

The generated Test262 suite is pure codegen and byte-identical on every platform, but the cache is effectively OS-scoped and only the Build workflow (Linux) ever seeds it. So the PR workflow's Windows / macOS / ARM jobs never get a cache hit and regenerate the whole ~99.5k-case suite on every run.

Marking the cache enableCrossOsArchive: true (on both the Build seed and the PR restore) lets every OS restore the one Linux-seeded cache. The cache key and cache action version are otherwise unchanged.

The .gitattributes change is required for this: the cache key hashes Test262Harness.settings.json, which currently checks out CRLF on Windows (* text=auto), so without pinning it to LF the Windows key wouldn't match the Linux-seeded entry (and the MSBuild regeneration gate would also differ) — defeating the cross-OS restore.

Note: on a PR that changes the settings file the four jobs cold-miss together and one wins the cache save (the others log a harmless "another job may be creating this cache"). That's cosmetic and infrequent; the common case (settings unchanged) is a warm hit with no generation. Fully removing even that cosmetic race needs a dedicated generate job, which is part of the sharding PR.

Version bumps

  • test262harness.console 1.0.6 → 1.1.0
  • actions/checkout v6 → v7
  • actions/cache v5 → v6

🤖 Generated with Claude Code

@lahma
lahma enabled auto-merge (squash) July 14, 2026 08:19
@lahma
lahma force-pushed the ci/test262-cache-and-actions branch from 6aced9c to e4e45c3 Compare July 14, 2026 08:24
…sions

Keeps the existing single-job-per-OS workflow structure; no sharding.

- Cache: mark the generated-suite cache cross-OS. The suite is pure codegen and
  identical on every platform, but today only the Build workflow (Linux) seeds
  the cache, so the PR workflow's Windows/macOS/ARM jobs never hit it and
  regenerate the whole ~99.5k-case suite on every run. enableCrossOsArchive lets
  them restore the Linux-seeded cache.
- .gitattributes: force the settings file to LF. The cache key hashes it, so a
  CRLF Windows checkout would change the key (and the MSBuild regen gate) and
  defeat the cross-OS restore.
- Bump test262harness.console 1.0.6 -> 1.1.0, actions/checkout v6 -> v7,
  actions/cache v5 -> v6.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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