-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
Beyond #1 and #2, the biggest issue with CI speed is that we clone the repository and install dependencies every run without caching. This takes up a lot of time, especially bulk updates in one PR. Some proposals:
- Clone each unique repository once in the runner, and just check out multiple commits when doing multiple builds.
- There could be some funny business with a previous run being able to mutably write to the repository, or giving it
.gitaccess. We'd probably want to copy the repository into a separate temp folder, to be mounted and then deleted. - Need to make sure that cloning the repository from the runner doesn't have any security problems.
- There could be some funny business with a previous run being able to mutably write to the repository, or giving it
- Fetch dependencies ahead of time and cache the pnpm store between runs.
- Lets us build extensions fully offline, which would be a nice extra layer of security.
- Could be dangerous if we let build scripts run by accident.
- Not sure how this'll interact with Allow custom package managers #2 if we start using Corepack.
- Sharing the cache between all extensions sounds dangerous and wasteful. Maybe we could make a read-only cache of the common dependencies included in the extension template, and any other added dependencies have to be pulled every run.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request