Cache the VS Code download in CI - #14
Conversation
Every integration job re-downloads a VS Code build, so a network blip on
the runner fails a run that has nothing wrong with it. That is not
hypothetical: the first merge to main went red on
Error: connect ENETUNREACH 2603:1061:14:e0::1:443
partway through the download, and passed on retry with no code change.
A red build that people learn to shrug at is worse than a slow one,
especially on a repository whose entire premise is that a reported result
should mean something.
Cache .vscode-test, keyed on the runner OS and package.json, with a
looser restore key so a dependency bump reuses the existing build instead
of starting from nothing. test-electron re-downloads by itself if the
version it wants is not in the cache.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
@thegoodengineer thanks for the merges and for the commit access, that was quick. Where things stand now that all nine are in:
One thing to know about that red run on the #9 merge: it was Four issues are still open and I have deliberately not sent PRs for them, because each needs a call that is yours:
Say which way you want any of them to go and I will do it. Last thing before you cut a |
|
Thanks for the writeup, and for catching that the #9 merge failure was network, not a real regression — good call confirming it with a clean re-run instead of just retrying and moving on. Direction on the four:
And yes, please open the version bump + README note too — go ahead and cut a PR for that whenever's convenient. |
Follow-up to #12, prompted by an actual red run rather than a hunch.
The merge of #9 to main failed on:
That is the runner failing to reach the download server partway through fetching VS Code, not a test failure. It passed on retry with no code change. Every integration job currently re-downloads that build from scratch, so the job's reliability is tied to a network round trip it does not need to repeat.
This caches
.vscode-test, keyed on runner OS andpackage.json, with a looserrestore-keysprefix so a dependency bump reuses the existing build rather than starting cold.@vscode/test-electronre-downloads on its own if the version it wants is not in the cache, so a stale entry degrades to today's behaviour instead of breaking anything..vscode-testis already gitignored.Worth doing beyond the time saved: a job that goes red for reasons unrelated to the change is a job people stop reading, which on this repository in particular would be an odd thing to ship.