mirror of
https://code.forgejo.org/actions/cache.git
synced 2024-12-25 12:05:53 +00:00
Add zstd workaround to README. Add yaml formatting to code blocks. Move Cache segment restore to Known Practices section.
This commit is contained in:
parent
7e7820edca
commit
eb8b610ee6
1 changed files with 18 additions and 1 deletions
19
README.md
19
README.md
|
@ -234,7 +234,7 @@ A cache gets downloaded in multiple segments of fixed sizes (`1GB` for a `32-bit
|
||||||
|
|
||||||
#### Update a cache
|
#### Update a cache
|
||||||
A cache today is immutable and cannot be updated. But some use cases require the cache to be saved even though there was a "hit" during restore. To do so, use a `key` which is unique for every run and use `restore-keys` to restore the nearest cache. For example:
|
A cache today is immutable and cannot be updated. But some use cases require the cache to be saved even though there was a "hit" during restore. To do so, use a `key` which is unique for every run and use `restore-keys` to restore the nearest cache. For example:
|
||||||
```
|
```yaml
|
||||||
- name: update cache on every commit
|
- name: update cache on every commit
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
with:
|
with:
|
||||||
|
@ -248,6 +248,23 @@ A cache today is immutable and cannot be updated. But some use cases require the
|
||||||
#### Use cache across feature branches
|
#### Use cache across feature branches
|
||||||
Reusing cache across feature branches is not allowed today to provide cache [isolation](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache). However if both feature branches are from the default branch, a good way to achieve this is to ensure that the default branch has a cache. This cache will then be consumable by both feature branches.
|
Reusing cache across feature branches is not allowed today to provide cache [isolation](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache). However if both feature branches are from the default branch, a good way to achieve this is to ensure that the default branch has a cache. This cache will then be consumable by both feature branches.
|
||||||
|
|
||||||
|
#### Improving cache restore performance on Windows
|
||||||
|
Currently, cache restore is slow on Windows due to both tar being slow and the compression algorithm being used is `gzip`. Zstd was disabled on windows due to issues with bsd tar(libarchive) which is the tar implementation in use on Windows. To improve cache restore performance, we can re-enable `zstd` as the compression algorithm using the following workaround by using GNU tar instead.
|
||||||
|
|
||||||
|
Add the following step to your workflow before the cache step:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- if: ${{ runner.os == 'Windows' }}
|
||||||
|
name: Use GNU tar
|
||||||
|
shell: cmd
|
||||||
|
run: |
|
||||||
|
echo "Adding GNU tar to PATH"
|
||||||
|
echo C:\Program Files\Git\usr\bin>>"%GITHUB_PATH%"
|
||||||
|
```
|
||||||
|
|
||||||
|
This should work on all Github Hosted runners as it is. For self-hosted runners, please ensure you have GNU tar and `zstd` installed.
|
||||||
|
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
|
We would love for you to contribute to `actions/cache`, pull requests are welcome! Please see the [CONTRIBUTING.md](CONTRIBUTING.md) for more information.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue