mirror of
				https://github.com/actions/cache.git
				synced 2025-11-04 13:29:10 +08:00 
			
		
		
		
	Merge pull request #329 from actions/aiyan/v2-release-doc
Update readme and examples to use v2
This commit is contained in:
		
							
								
								
									
										36
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								README.md
									
									
									
									
									
								
							@@ -8,6 +8,28 @@ This action allows caching dependencies and build outputs to improve workflow ex
 | 
			
		||||
 | 
			
		||||
See ["Caching dependencies to speed up workflows"](https://help.github.com/github/automating-your-workflow-with-github-actions/caching-dependencies-to-speed-up-workflows).
 | 
			
		||||
 | 
			
		||||
## What's New
 | 
			
		||||
 | 
			
		||||
* Added support for multiple paths, [glob patterns](https://github.com/actions/toolkit/tree/master/packages/glob), and single file caches. 
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Cache multiple paths
 | 
			
		||||
  uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: |
 | 
			
		||||
      ~/cache
 | 
			
		||||
      !~/cache/exclude
 | 
			
		||||
      **/node_modules
 | 
			
		||||
    key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* Increased performance and improved cache sizes using `zstd` compression for Linux and macOS runners
 | 
			
		||||
* Allowed caching for all events with a ref. See [events that trigger workflow](https://help.github.com/en/actions/reference/events-that-trigger-workflows) for info on which events do not have a `GITHUB_REF`
 | 
			
		||||
* Released the [`@actions/cache`](https://github.com/actions/toolkit/tree/master/packages/cache) npm package to allow other actions to utilize caching
 | 
			
		||||
* Added a best-effort cleanup step to delete the archive after extraction to reduce storage space
 | 
			
		||||
 | 
			
		||||
Refer [here](https://github.com/actions/cache/blob/v1/README.md) for previous versions
 | 
			
		||||
 | 
			
		||||
## Usage
 | 
			
		||||
 | 
			
		||||
### Pre-requisites
 | 
			
		||||
@@ -15,7 +37,7 @@ Create a workflow `.yml` file in your repositories `.github/workflows` directory
 | 
			
		||||
 | 
			
		||||
### Inputs
 | 
			
		||||
 | 
			
		||||
* `path` - A directory to store and save the cache
 | 
			
		||||
* `path` - A list of files, directories, and wildcard patterns to cache and restore. See [`@actions/glob`](https://github.com/actions/toolkit/tree/master/packages/glob) for supported patterns. 
 | 
			
		||||
* `key` - An explicit key for restoring and saving the cache
 | 
			
		||||
* `restore-keys` - An ordered list of keys to use for restoring the cache if no cache hit occurred for key
 | 
			
		||||
 | 
			
		||||
@@ -46,7 +68,7 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    - name: Cache Primes
 | 
			
		||||
      id: cache-primes
 | 
			
		||||
      uses: actions/cache@v1
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        path: prime-numbers
 | 
			
		||||
        key: ${{ runner.os }}-primes
 | 
			
		||||
@@ -93,9 +115,11 @@ A cache key can include any of the contexts, functions, literals, and operators
 | 
			
		||||
For example, using the [`hashFiles`](https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#hashfiles) function allows you to create a new cache when dependencies change.
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
  - uses: actions/cache@v1
 | 
			
		||||
  - uses: actions/cache@v2
 | 
			
		||||
    with:
 | 
			
		||||
      path: path/to/dependencies
 | 
			
		||||
      path: | 
 | 
			
		||||
        path/to/dependencies
 | 
			
		||||
        some/other/dependencies 
 | 
			
		||||
      key: ${{ runner.os }}-${{ hashFiles('**/lockfiles') }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
@@ -109,7 +133,7 @@ Additionally, you can use arbitrary command output in a cache key, such as a dat
 | 
			
		||||
      echo "::set-output name=date::$(/bin/date -u "+%Y%m%d")"
 | 
			
		||||
    shell: bash
 | 
			
		||||
 | 
			
		||||
  - uses: actions/cache@v1
 | 
			
		||||
  - uses: actions/cache@v2
 | 
			
		||||
    with:
 | 
			
		||||
      path: path/to/dependencies
 | 
			
		||||
      key: ${{ runner.os }}-${{ steps.get-date.outputs.date }}-${{ hashFiles('**/lockfiles') }}
 | 
			
		||||
@@ -130,7 +154,7 @@ Example:
 | 
			
		||||
steps:
 | 
			
		||||
  - uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
  - uses: actions/cache@v1
 | 
			
		||||
  - uses: actions/cache@v2
 | 
			
		||||
    id: cache
 | 
			
		||||
    with:
 | 
			
		||||
      path: path/to/dependencies
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ description: 'Cache artifacts like dependencies and build outputs to improve wor
 | 
			
		||||
author: 'GitHub'
 | 
			
		||||
inputs:
 | 
			
		||||
  path:
 | 
			
		||||
    description: 'A directory to store and save the cache'
 | 
			
		||||
    description: 'A list of files, directories, and wildcard patterns to cache and restore'
 | 
			
		||||
    required: true
 | 
			
		||||
  key:
 | 
			
		||||
    description: 'An explicit key for restoring and saving the cache'
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										125
									
								
								examples.md
									
									
									
									
									
								
							
							
						
						
									
										125
									
								
								examples.md
									
									
									
									
									
								
							@@ -35,7 +35,7 @@
 | 
			
		||||
Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies):
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.nuget/packages
 | 
			
		||||
    key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
 | 
			
		||||
@@ -44,13 +44,25 @@ Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/packa
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Depending on the environment, huge packages might be pre-installed in the global cache folder.
 | 
			
		||||
If you do not want to include them, consider to move the cache folder like below.
 | 
			
		||||
With `actions/cache@v2` you can now exclude unwanted packages with [exclude pattern](https://github.com/actions/toolkit/tree/master/packages/glob#exclude-patterns)
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: | 
 | 
			
		||||
      ~/.nuget/packages
 | 
			
		||||
      !~/.nuget/packages/unwanted
 | 
			
		||||
    key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-nuget-
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Or you could move the cache folder like below.
 | 
			
		||||
>Note: This workflow does not work for projects that require files to be placed in user profile package folder
 | 
			
		||||
```yaml
 | 
			
		||||
env:
 | 
			
		||||
  NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
 | 
			
		||||
steps:
 | 
			
		||||
  - uses: actions/cache@v1
 | 
			
		||||
  - uses: actions/cache@v2
 | 
			
		||||
    with:
 | 
			
		||||
      path: ${{ github.workspace }}/.nuget/packages
 | 
			
		||||
      key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
 | 
			
		||||
@@ -63,7 +75,7 @@ steps:
 | 
			
		||||
### POSIX
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.dub
 | 
			
		||||
    key: ${{ runner.os }}-dub-${{ hashFiles('**/dub.json') }}
 | 
			
		||||
@@ -74,7 +86,7 @@ steps:
 | 
			
		||||
### Windows
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~\AppData\Local\dub
 | 
			
		||||
    key: ${{ runner.os }}-dub-${{ hashFiles('**/dub.json') }}
 | 
			
		||||
@@ -84,7 +96,7 @@ steps:
 | 
			
		||||
 | 
			
		||||
## Elixir - Mix
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: deps
 | 
			
		||||
    key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
 | 
			
		||||
@@ -95,7 +107,7 @@ steps:
 | 
			
		||||
## Go - Modules
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/go/pkg/mod
 | 
			
		||||
    key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
 | 
			
		||||
@@ -108,27 +120,20 @@ steps:
 | 
			
		||||
We cache the elements of the Cabal store separately, as the entirety of `~/.cabal` can grow very large for projects with many dependencies.
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
  name: Cache ~/.cabal/packages
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  name: Cache ~/.cabal/packages, ~/.cabal/store and dist-newstyle
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.cabal/packages
 | 
			
		||||
    key: ${{ runner.os }}-${{ matrix.ghc }}-cabal-packages
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
  name: Cache ~/.cabal/store
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.cabal/store
 | 
			
		||||
    key: ${{ runner.os }}-${{ matrix.ghc }}-cabal-store
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
  name: Cache dist-newstyle
 | 
			
		||||
  with:
 | 
			
		||||
    path: dist-newstyle
 | 
			
		||||
    key: ${{ runner.os }}-${{ matrix.ghc }}-dist-newstyle
 | 
			
		||||
    path: |
 | 
			
		||||
      ~/.cabal/packages
 | 
			
		||||
      ~/.cabal/store
 | 
			
		||||
      dist-newstyle
 | 
			
		||||
    key: ${{ runner.os }}-${{ matrix.ghc }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Java - Gradle
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.gradle/caches
 | 
			
		||||
    key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
 | 
			
		||||
@@ -139,7 +144,7 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba
 | 
			
		||||
## Java - Maven
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.m2/repository
 | 
			
		||||
    key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
 | 
			
		||||
@@ -156,7 +161,7 @@ For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` o
 | 
			
		||||
### macOS and Ubuntu
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.npm
 | 
			
		||||
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
@@ -171,7 +176,7 @@ For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` o
 | 
			
		||||
  id: npm-cache
 | 
			
		||||
  run: |
 | 
			
		||||
    echo "::set-output name=dir::$(npm config get cache)"
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.npm-cache.outputs.dir }}
 | 
			
		||||
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
@@ -186,7 +191,7 @@ For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` o
 | 
			
		||||
  id: npm-cache
 | 
			
		||||
  run: |
 | 
			
		||||
    echo "::set-output name=dir::$(npm config get cache)"
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.npm-cache.outputs.dir }}
 | 
			
		||||
    key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
@@ -196,10 +201,9 @@ For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` o
 | 
			
		||||
 | 
			
		||||
## Node - Lerna
 | 
			
		||||
 | 
			
		||||
>Note this example uses the new multi-paths feature and is only available at `master`
 | 
			
		||||
```yaml
 | 
			
		||||
- name: restore lerna
 | 
			
		||||
  uses: actions/cache@master
 | 
			
		||||
  uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: |
 | 
			
		||||
      node_modules
 | 
			
		||||
@@ -215,7 +219,7 @@ The yarn cache directory will depend on your operating system and version of `ya
 | 
			
		||||
  id: yarn-cache-dir-path
 | 
			
		||||
  run: echo "::set-output name=dir::$(yarn cache dir)"
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
 | 
			
		||||
@@ -229,7 +233,7 @@ Esy allows you to export built dependencies and import pre-built dependencies.
 | 
			
		||||
```yaml
 | 
			
		||||
    - name: Restore Cache
 | 
			
		||||
      id: restore-cache
 | 
			
		||||
      uses: actions/cache@v1
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        path: _export
 | 
			
		||||
        key:  ${{ runner.os }}-esy-${{ hashFiles('esy.lock/index.json') }}
 | 
			
		||||
@@ -259,7 +263,7 @@ Esy allows you to export built dependencies and import pre-built dependencies.
 | 
			
		||||
  id: composer-cache
 | 
			
		||||
  run: |
 | 
			
		||||
    echo "::set-output name=dir::$(composer config cache-files-dir)"
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.composer-cache.outputs.dir }}
 | 
			
		||||
    key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
 | 
			
		||||
@@ -278,7 +282,7 @@ Locations:
 | 
			
		||||
 | 
			
		||||
### Simple example
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.cache/pip
 | 
			
		||||
    key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
 | 
			
		||||
@@ -291,7 +295,7 @@ Replace `~/.cache/pip` with the correct `path` if not using Ubuntu.
 | 
			
		||||
### Multiple OS's in a workflow
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  if: startsWith(runner.os, 'Linux')
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.cache/pip
 | 
			
		||||
@@ -299,7 +303,7 @@ Replace `~/.cache/pip` with the correct `path` if not using Ubuntu.
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-pip-
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  if: startsWith(runner.os, 'macOS')
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/Library/Caches/pip
 | 
			
		||||
@@ -307,7 +311,7 @@ Replace `~/.cache/pip` with the correct `path` if not using Ubuntu.
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-pip-
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  if: startsWith(runner.os, 'Windows')
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~\AppData\Local\pip\Cache
 | 
			
		||||
@@ -326,7 +330,7 @@ Replace `~/.cache/pip` with the correct `path` if not using Ubuntu.
 | 
			
		||||
    echo "::set-output name=dir::$(pip cache dir)"
 | 
			
		||||
 | 
			
		||||
- name: pip cache
 | 
			
		||||
  uses: actions/cache@v1
 | 
			
		||||
  uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.pip-cache.outputs.dir }}
 | 
			
		||||
    key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
 | 
			
		||||
@@ -343,7 +347,7 @@ Replace `~/.cache/pip` with the correct `path` if not using Ubuntu.
 | 
			
		||||
 run: |
 | 
			
		||||
   python -c "from pip._internal.locations import USER_CACHE_DIR; print('::set-output name=dir::' + USER_CACHE_DIR)"
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ${{ steps.pip-cache.outputs.dir }}
 | 
			
		||||
    key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
 | 
			
		||||
@@ -362,7 +366,7 @@ Locations:
 | 
			
		||||
 | 
			
		||||
### Simple example
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.local/share/renv
 | 
			
		||||
    key: ${{ runner.os }}-renv-${{ hashFiles('**/renv.lock') }}
 | 
			
		||||
@@ -375,7 +379,7 @@ Replace `~/.local/share/renv` with the correct `path` if not using Ubuntu.
 | 
			
		||||
### Multiple OS's in a workflow
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  if: startsWith(runner.os, 'Linux')
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.local/share/renv
 | 
			
		||||
@@ -383,7 +387,7 @@ Replace `~/.local/share/renv` with the correct `path` if not using Ubuntu.
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-renv-
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  if: startsWith(runner.os, 'macOS')
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/Library/Application Support/renv
 | 
			
		||||
@@ -391,7 +395,7 @@ Replace `~/.local/share/renv` with the correct `path` if not using Ubuntu.
 | 
			
		||||
    restore-keys: |
 | 
			
		||||
      ${{ runner.os }}-renv-
 | 
			
		||||
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  if: startsWith(runner.os, 'Windows')
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~\AppData\Local\renv
 | 
			
		||||
@@ -403,7 +407,7 @@ Replace `~/.local/share/renv` with the correct `path` if not using Ubuntu.
 | 
			
		||||
## Ruby - Bundler
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: vendor/bundle
 | 
			
		||||
    key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
 | 
			
		||||
@@ -422,42 +426,31 @@ When dependencies are installed later in the workflow, we must specify the same
 | 
			
		||||
## Rust - Cargo
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Cache cargo registry
 | 
			
		||||
  uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.cargo/registry
 | 
			
		||||
    key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
- name: Cache cargo index
 | 
			
		||||
  uses: actions/cache@v1
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.cargo/git
 | 
			
		||||
    key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
- name: Cache cargo build
 | 
			
		||||
  uses: actions/cache@v1
 | 
			
		||||
  with:
 | 
			
		||||
    path: target
 | 
			
		||||
    key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
    path: |
 | 
			
		||||
      ~/.cargo/registry
 | 
			
		||||
      ~/.cargo/git
 | 
			
		||||
      target
 | 
			
		||||
    key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Scala - SBT
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- name: Cache SBT ivy cache
 | 
			
		||||
  uses: actions/cache@v1
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.ivy2/cache
 | 
			
		||||
    key: ${{ runner.os }}-sbt-ivy-cache-${{ hashFiles('**/build.sbt') }}
 | 
			
		||||
- name: Cache SBT
 | 
			
		||||
  uses: actions/cache@v1
 | 
			
		||||
  uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: ~/.sbt
 | 
			
		||||
    path: | 
 | 
			
		||||
      ~/.ivy2/cache
 | 
			
		||||
      ~/.sbt
 | 
			
		||||
    key: ${{ runner.os }}-sbt-${{ hashFiles('**/build.sbt') }}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Swift, Objective-C - Carthage
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: Carthage
 | 
			
		||||
    key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }}
 | 
			
		||||
@@ -468,7 +461,7 @@ When dependencies are installed later in the workflow, we must specify the same
 | 
			
		||||
## Swift, Objective-C - CocoaPods
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: Pods
 | 
			
		||||
    key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
 | 
			
		||||
@@ -479,7 +472,7 @@ When dependencies are installed later in the workflow, we must specify the same
 | 
			
		||||
## Swift - Swift Package Manager
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
- uses: actions/cache@v1
 | 
			
		||||
- uses: actions/cache@v2
 | 
			
		||||
  with:
 | 
			
		||||
    path: .build
 | 
			
		||||
    key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user