mirror of
https://github.com/actions/cache.git
synced 2024-11-13 17:38:05 +00:00
Merge pull request #896 from actions/bishal-pdMSFT-patch-1
Add readme section for good practices
This commit is contained in:
commit
5f975d03e6
19
README.md
19
README.md
@ -229,6 +229,25 @@ A cache gets downloaded in multiple segments of fixed sizes (`1GB` for a `32-bit
|
|||||||
|
|
||||||
Default value of this timeout is 60 minutes and can be customized by specifying an [environment variable](https://docs.github.com/en/actions/learn-github-actions/environment-variables) named `SEGMENT_DOWNLOAD_TIMEOUT_MINS` with timeout value in minutes.
|
Default value of this timeout is 60 minutes and can be customized by specifying an [environment variable](https://docs.github.com/en/actions/learn-github-actions/environment-variables) named `SEGMENT_DOWNLOAD_TIMEOUT_MINS` with timeout value in minutes.
|
||||||
|
|
||||||
|
## Known practices and workarounds
|
||||||
|
Following are some of the known practices/workarounds which community has used to fulfill specific requirements. You may choose to use them if suits your use case. Note these are not necessarily the only or the recommended solution.
|
||||||
|
|
||||||
|
#### 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:
|
||||||
|
```
|
||||||
|
- name: update cache on every commit
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: prime-numbers
|
||||||
|
key: primes-${{ runner.os }}-${{ github.run_id }} # Can use time based key as well
|
||||||
|
restore-keys: |
|
||||||
|
primes-${{ runner.os }}
|
||||||
|
```
|
||||||
|
Please note that this will create a new cache on every run and hence will consume the cache [quota](#cache-limits).
|
||||||
|
|
||||||
|
#### 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.
|
||||||
|
|
||||||
## 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 New Issue
Block a user