[heft] Update file copy layer to support incremental disk cache #4943
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #4942
Updates the underlying logic in Heft's
copy-files-plugin
to write an incremental cache file, that will be used to only copy files where the inputs have changed. This also impacts the file copy inheft-typescript-plugin
.Adds a new API to read and write incremental cache files, for use by other plugins.
Details
Incremental cache files store a config hash, a list of input files with SHA-256 hashes, and optionally a mapping from output file names to indices of input files.
Each task will get its own unique
file-copy.json
cache file in the task's temp folder if there are a non-zero number of copy operations configured for the task.How it was tested
Using
build-tests/heft-copy-files-plugin
.Impacted documentation
Copy files.