Repository navigation
Conversation
|
commit: |
Most of the test262 updates only change a few tests. Would it be doable to use git to see the diff between them, and only invalidate the affected tests? While still invalidating everything for harness changes. |
Could he be referring to the core-js version? |
nicolo-ribaudo
left a comment
There was a problem hiding this comment.
Looking at this PR's CI, even without the cache the two jobs completed in about 15 minutes.
I think it's fine, and we don't need the extra workflow. In practice they will take 15 minutes once per week, for the test262 update PR.
Note that the current CI runtime is not the one for uncached job, for example here is the output for the test262 job 1: The runtime in this PR still benefit from the cache in the 8-chunk setting. Anyway my previous estimation for half an hour seems too conservative, with two runners the uncached running time might be around 20 minutes.
Note that currently the test262 commit PRs does not require bursting the cache. The main will write to the cache automatically for new tests. It is a good point to invalidate some test cache based on git diff changes. I can open a new PR for that purpose. The cache is keyed by the npm lockfile and the runner source, so any dependabot PR for the test262 runner, or any runner source change will require a cache burst, since we can not statically evaluate the affect from the runner change itself. |
Run test262 in 16 chunks to fill the cache from scratch when a test runner change invalidates it, since this would be slow in the 2 chunks of CI. Assisted-by: Claude Opus 5.5
This reverts commit ab4c47eb72b7497066bd2293eeb0db7084a3886e.
28a8ab9 to
548b73f
Compare
|
I have reverted and removed the new update-cache-workflow. If there is consensus I will close babel/babel-test262-runner#94. |
|
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/63013 |
With the help of test262 runner cache, a cache run has been decreased from ~6:37 (Chunk 1 on 3b8f924724a267513c58458251a8df4162668c95) to ~45 seconds (Chunk 1 on 0750fe6a02357e53fa93e06f383a2419be6abef0), so the workflow overhead is more significant and now we can run the cached test in 2 jobs, with the current GH workflow overhead, my estimation is that each test262 job will take ~4 min, roughly the same as how much we spent on the lint job.
Reducing the job number will produce a new problem: If there is update in thetest262-runner(mostly from dependabot), the cache will be invalidated and uncached test262 job in 2 chunk will take more than half an hour. So we add a new workflow, which split into 16 chunks to burst the cache. This workflow can be dispatched manually or triggered by thebabel-test262-runnerworkflow.Note: In this PR the test262 job is slow because they are still using the cache for the 8-chunk settings, so 75% of the chunk tests are not cached in this PR. Once this PR gets merged and the cache is burst, the new job runtime will be improved.