mirror of
				https://kkgithub.com/actions/setup-node.git
				synced 2025-11-01 03:01:53 +08:00 
			
		
		
		
	Do not ivalidate the cache entirely on lock file change (#744)
* Do not ivalidate the cache entirely on yarn3 lock file change * Use cache prefix if all sub-projects are yarn managed * Rename functions & add e2e tests
This commit is contained in:
		
							
								
								
									
										84
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										84
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							| @ -146,7 +146,7 @@ jobs: | ||||
|       - uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: prepare sub-projects | ||||
|         run: __tests__/prepare-subprojects.sh | ||||
|         run: __tests__/prepare-yarn-subprojects.sh yarn1 | ||||
|  | ||||
|       # expect | ||||
|       #  - no errors | ||||
| @ -161,3 +161,85 @@ jobs: | ||||
|           cache-dependency-path: | | ||||
|             **/*.lock | ||||
|             yarn.lock | ||||
|  | ||||
|   yarn-subprojects-berry-local: | ||||
|     name: Test yarn subprojects all locally managed | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12, 14, 16] | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: prepare sub-projects | ||||
|         run: __tests__/prepare-yarn-subprojects.sh | ||||
|  | ||||
|       # expect | ||||
|       #  - no errors | ||||
|       #  - log | ||||
|       #    ##[info]All dependencies are managed locally by yarn3, the previous cache can be used | ||||
|       #    ##[debug]["node-cache-Linux-yarn-401024703386272f1a950c9f014cbb1bb79a7a5b6e1fb00e8b90d06734af41ee","node-cache-Linux-yarn"] | ||||
|       - name: Setup Node | ||||
|         uses: ./ | ||||
|         with: | ||||
|           node-version: ${{ matrix.node-version }} | ||||
|           cache: 'yarn' | ||||
|           cache-dependency-path: | | ||||
|             sub2/*.lock | ||||
|             sub3/*.lock | ||||
|  | ||||
|   yarn-subprojects-berry-global: | ||||
|     name: Test yarn subprojects some locally managed | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12, 14, 16] | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: prepare sub-projects | ||||
|         run: __tests__/prepare-yarn-subprojects.sh global | ||||
|  | ||||
|       # expect | ||||
|       #  - no errors | ||||
|       #  - log must | ||||
|       #    ##[debug]"/home/runner/work/setup-node-test/setup-node-test/sub2" dependencies are managed by yarn 3 locally | ||||
|       #    ##[debug]"/home/runner/work/setup-node-test/setup-node-test/sub3" dependencies are not managed by yarn 3 locally | ||||
|       - name: Setup Node | ||||
|         uses: ./ | ||||
|         with: | ||||
|           node-version: ${{ matrix.node-version }} | ||||
|           cache: 'yarn' | ||||
|           cache-dependency-path: | | ||||
|             sub2/*.lock | ||||
|             sub3/*.lock | ||||
|  | ||||
|   yarn-subprojects-berry-git: | ||||
|     name: Test yarn subprojects managed by git | ||||
|     strategy: | ||||
|       matrix: | ||||
|         node-version: [12, 14, 16] | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|       - uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: prepare sub-projects | ||||
|         run: /bin/bash __tests__/prepare-yarn-subprojects.sh keepcache | ||||
|  | ||||
|       # expect | ||||
|       #  - no errors | ||||
|       #  - log | ||||
|       #    [debug]"/home/runner/work/setup-node-test/setup-node-test/sub2" has .yarn/cache - dependencies are kept in the repository | ||||
|       #    [debug]"/home/runner/work/setup-node-test/setup-node-test/sub3" has .yarn/cache - dependencies are kept in the repository | ||||
|       #    [debug]["node-cache-Linux-yarn-401024703386272f1a950c9f014cbb1bb79a7a5b6e1fb00e8b90d06734af41ee"] | ||||
|       - name: Setup Node | ||||
|         uses: ./ | ||||
|         with: | ||||
|           node-version: ${{ matrix.node-version }} | ||||
|           cache: 'yarn' | ||||
|           cache-dependency-path: | | ||||
|             sub2/*.lock | ||||
|             sub3/*.lock | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Sergey Dolin
					Sergey Dolin