| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | # Examples
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | - [C# - Nuget](#c---nuget) | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | - [Elixir - Mix](#elixir---mix) | 
					
						
							|  |  |  | - [Go - Modules](#go---modules) | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | - [Java - Gradle](#java---gradle) | 
					
						
							|  |  |  | - [Java - Maven](#java---maven) | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | - [Node - npm](#node---npm) | 
					
						
							|  |  |  | - [Node - Yarn](#node---yarn) | 
					
						
							| 
									
										
										
										
											2019-11-05 22:18:49 +01:00
										 |  |  | - [PHP - Composer](#php---composer) | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | - [Ruby - Gem](#ruby---gem) | 
					
						
							| 
									
										
										
										
											2019-11-05 00:15:02 +09:00
										 |  |  | - [Rust - Cargo](#rust---cargo) | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | - [Swift, Objective-C - Carthage](#swift-objective-c---carthage) | 
					
						
							|  |  |  | - [Swift, Objective-C - CocoaPods](#swift-objective-c---cocoapods) | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | ## C# - Nuget
 | 
					
						
							|  |  |  | Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/package-references-in-project-files#locking-dependencies): | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |     path: ~/.nuget/packages | 
					
						
							|  |  |  |     key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }} | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |     restore-keys: | | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |       ${{ runner.os }}-nuget- | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | ## Elixir - Mix
 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |     path: deps | 
					
						
							|  |  |  |     key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }} | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |     restore-keys: | | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |       ${{ runner.os }}-mix- | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | ## Go - Modules
 | 
					
						
							| 
									
										
										
										
											2019-11-05 17:03:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |     path: ~/go/pkg/mod | 
					
						
							|  |  |  |     key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |     restore-keys: | | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |       ${{ runner.os }}-go- | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Java - Gradle
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							|  |  |  |     path: ~/.gradle/caches | 
					
						
							|  |  |  |     key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-gradle- | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Java - Maven
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							|  |  |  |     path: ~/.m2/repository | 
					
						
							|  |  |  |     key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							| 
									
										
										
										
											2019-10-31 12:08:09 -07:00
										 |  |  |       ${{ runner.os }}-maven- | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | ## Node - npm
 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-07 21:04:46 -05:00
										 |  |  | For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` on Windows. See https://docs.npmjs.com/cli/cache#cache | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | >Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### macOS and Ubuntu
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-05 17:03:56 +01:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							|  |  |  |   with: | 
					
						
							| 
									
										
										
										
											2019-11-07 21:04:46 -05:00
										 |  |  |     path: ~/.npm | 
					
						
							|  |  |  |     key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-node- | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Windows
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							|  |  |  | - uses: actions/cache@v1 | 
					
						
							|  |  |  |   with: | 
					
						
							|  |  |  |     path: ~\AppData\Roaming\npm-cache | 
					
						
							|  |  |  |     key: ${{ runner.os }}-node-${{ hashFiles('**\package-lock.json') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-node- | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ### Using multiple systems and `npm config`
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml   | 
					
						
							|  |  |  | - name: Get npm cache directory | 
					
						
							|  |  |  |   id: npm-cache | 
					
						
							|  |  |  |   run: | | 
					
						
							|  |  |  |     echo "::set-output name=dir::$(npm config get cache)" | 
					
						
							|  |  |  | - uses: actions/cache@v1 | 
					
						
							|  |  |  |   with: | 
					
						
							|  |  |  |     path: ${{ steps.npm-cache.outputs.dir }} | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |     key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | 
					
						
							| 
									
										
										
										
											2019-11-05 17:03:56 +01:00
										 |  |  |     restore-keys: | | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |       ${{ runner.os }}-node- | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | ## Node - Yarn
 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |     path: ~/.cache/yarn | 
					
						
							|  |  |  |     key: ${{ runner.os }}-yarn-${{ hashFiles(format('{0}{1}', github.workspace, '/yarn.lock')) }} | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |     restore-keys: | | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  |       ${{ runner.os }}-yarn- | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 22:18:49 +01:00
										 |  |  | ## PHP - Composer
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml   | 
					
						
							|  |  |  | - name: Get Composer Cache Directory | 
					
						
							|  |  |  |   id: composer-cache | 
					
						
							|  |  |  |   run: | | 
					
						
							|  |  |  |     echo "::set-output name=dir::$(composer config cache-files-dir)" | 
					
						
							|  |  |  | - uses: actions/cache@v1 | 
					
						
							|  |  |  |   with: | 
					
						
							|  |  |  |     path: ${{ steps.composer-cache.outputs.dir }} | 
					
						
							|  |  |  |     key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-composer- | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  | ## Ruby - Gem
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  | - uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-10-31 11:36:50 -04:00
										 |  |  |   with: | 
					
						
							|  |  |  |     path: vendor/bundle | 
					
						
							|  |  |  |     key: ${{ runner.os }}-gem-${{ hashFiles('**/Gemfile.lock') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-gem- | 
					
						
							| 
									
										
										
										
											2019-11-01 20:27:43 +01:00
										 |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 00:15:02 +09:00
										 |  |  | ## Rust - Cargo
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-11-05 17:03:56 +01:00
										 |  |  | ```yaml | 
					
						
							| 
									
										
										
										
											2019-11-05 00:15:02 +09:00
										 |  |  | - name: Cache cargo registry | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  |   uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-11-05 00:15:02 +09:00
										 |  |  |   with: | 
					
						
							|  |  |  |     path: ~/.cargo/registry | 
					
						
							|  |  |  |     key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} | 
					
						
							|  |  |  | - name: Cache cargo index | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  |   uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-11-05 00:15:02 +09:00
										 |  |  |   with: | 
					
						
							|  |  |  |     path: ~/.cargo/git | 
					
						
							|  |  |  |     key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} | 
					
						
							|  |  |  | - name: Cache cargo build | 
					
						
							| 
									
										
										
										
											2019-11-04 16:40:33 -05:00
										 |  |  |   uses: actions/cache@v1 | 
					
						
							| 
									
										
										
										
											2019-11-05 00:15:02 +09:00
										 |  |  |   with: | 
					
						
							|  |  |  |     path: target | 
					
						
							|  |  |  |     key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | 
					
						
							|  |  |  | ``` | 
					
						
							| 
									
										
										
										
											2019-11-05 19:04:07 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## Swift, Objective-C - Carthage
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							|  |  |  | - uses: actions/cache@v1 | 
					
						
							|  |  |  |   with: | 
					
						
							|  |  |  |     path: Carthage | 
					
						
							|  |  |  |     key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-carthage- | 
					
						
							|  |  |  | ``` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ## Swift, Objective-C - CocoaPods
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ```yaml | 
					
						
							|  |  |  | - uses: actions/cache@v1 | 
					
						
							|  |  |  |   with: | 
					
						
							|  |  |  |     path: Pods | 
					
						
							|  |  |  |     key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} | 
					
						
							|  |  |  |     restore-keys: | | 
					
						
							|  |  |  |       ${{ runner.os }}-pods- | 
					
						
							|  |  |  | ``` |