mirror of
				https://github.com/actions/cache.git
				synced 2025-10-30 17:54:20 +08:00 
			
		
		
		
	test e2e during workflow (#185)
This commit is contained in:
		
							parent
							
								
									78a4b2143b
								
							
						
					
					
						commit
						4944275b95
					
				
							
								
								
									
										107
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										107
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							| @ -13,42 +13,117 @@ on: | ||||
|       - '**.md' | ||||
| 
 | ||||
| jobs: | ||||
|   test: | ||||
|     name: Test on ${{ matrix.os }} | ||||
| 
 | ||||
|   # Build and unit test | ||||
|   build: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, windows-latest, macOS-latest] | ||||
|       fail-fast: false | ||||
| 
 | ||||
|     runs-on: ${{ matrix.os }} | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v1 | ||||
| 
 | ||||
|     - uses: actions/setup-node@v1 | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|     - name: Setup Node.js | ||||
|       uses: actions/setup-node@v1 | ||||
|       with: | ||||
|         node-version: '12.x' | ||||
| 
 | ||||
|     - name: Get npm cache directory | ||||
|     - name: Determine npm cache directory | ||||
|       id: npm-cache | ||||
|       run: | | ||||
|         echo "::set-output name=dir::$(npm config get cache)" | ||||
| 
 | ||||
|     - uses: actions/cache@v1 | ||||
|     - name: Restore npm cache | ||||
|       uses: actions/cache@v1 | ||||
|       with: | ||||
|         path: ${{ steps.npm-cache.outputs.dir }} | ||||
|         key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | ||||
|         restore-keys: | | ||||
|           ${{ runner.os }}-node- | ||||
| 
 | ||||
|     - run: npm ci | ||||
| 
 | ||||
|     - name: Prettier Format Check | ||||
|       run: npm run format-check | ||||
| 
 | ||||
|     - name: ESLint Check | ||||
|       run: npm run lint | ||||
| 
 | ||||
|     - name: Build & Test | ||||
|       run: npm run test | ||||
| 
 | ||||
|   # End to end save and restore | ||||
|   test-save: | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, windows-latest, macOS-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|     - name: Generate files | ||||
|       shell: bash | ||||
|       run: __tests__/create-cache-files.sh ${{ runner.os }} | ||||
|     - name: Save cache | ||||
|       uses: ./ | ||||
|       with: | ||||
|         key: test-${{ runner.os }}-${{ github.run_id }} | ||||
|         path: test-cache | ||||
|   test-restore: | ||||
|     needs: test-save | ||||
|     strategy: | ||||
|       matrix: | ||||
|         os: [ubuntu-latest, windows-latest, macOS-latest] | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|     - name: Restore cache | ||||
|       uses: ./ | ||||
|       with: | ||||
|         key: test-${{ runner.os }}-${{ github.run_id }} | ||||
|         path: test-cache | ||||
|     - name: Verify cache | ||||
|       shell: bash | ||||
|       run: __tests__/verify-cache-files.sh ${{ runner.os }} | ||||
| 
 | ||||
|   # End to end with proxy | ||||
|   test-proxy-save: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: | ||||
|       image: ubuntu:latest | ||||
|       options: --dns 127.0.0.1 | ||||
|     services: | ||||
|       squid-proxy: | ||||
|         image: datadog/squid:latest | ||||
|         ports: | ||||
|           - 3128:3128 | ||||
|     env: | ||||
|       https_proxy: http://squid-proxy:3128 | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|     - name: Generate files | ||||
|       run: __tests__/create-cache-files.sh proxy | ||||
|     - name: Save cache | ||||
|       uses: ./ | ||||
|       with: | ||||
|         key: test-proxy-${{ github.run_id }} | ||||
|         path: test-cache | ||||
|   test-proxy-restore: | ||||
|     needs: test-proxy-save | ||||
|     runs-on: ubuntu-latest | ||||
|     container: | ||||
|       image: ubuntu:latest | ||||
|       options: --dns 127.0.0.1 | ||||
|     services: | ||||
|       squid-proxy: | ||||
|         image: datadog/squid:latest | ||||
|         ports: | ||||
|           - 3128:3128 | ||||
|     env: | ||||
|       https_proxy: http://squid-proxy:3128 | ||||
|     steps: | ||||
|     - name: Checkout | ||||
|       uses: actions/checkout@v2 | ||||
|     - name: Restore cache | ||||
|       uses: ./ | ||||
|       with: | ||||
|         key: test-proxy-${{ github.run_id }} | ||||
|         path: test-cache | ||||
|     - name: Verify cache | ||||
|       run: __tests__/verify-cache-files.sh proxy | ||||
|  | ||||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -1,8 +1,5 @@ | ||||
| __tests__/runner/* | ||||
| 
 | ||||
| # comment out in distribution branches | ||||
| dist/ | ||||
| 
 | ||||
| node_modules/ | ||||
| lib/ | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										11
									
								
								__tests__/create-cache-files.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								__tests__/create-cache-files.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,11 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # Validate args | ||||
| prefix="$1" | ||||
| if [ -z "$prefix" ]; then | ||||
|   echo "Must supply prefix argument" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| mkdir test-cache | ||||
| echo "$prefix $GITHUB_RUN_ID" > test-cache/test-file.txt | ||||
							
								
								
									
										30
									
								
								__tests__/verify-cache-files.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										30
									
								
								__tests__/verify-cache-files.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,30 @@ | ||||
| #!/bin/sh | ||||
| 
 | ||||
| # Validate args | ||||
| prefix="$1" | ||||
| if [ -z "$prefix" ]; then | ||||
|   echo "Must supply prefix argument" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Sanity check GITHUB_RUN_ID defined | ||||
| if [ -z "$GITHUB_RUN_ID" ]; then | ||||
|   echo "GITHUB_RUN_ID not defined" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Verify file exists | ||||
| file="test-cache/test-file.txt" | ||||
| echo "Checking for $file" | ||||
| if [ ! -e $file ]; then | ||||
|   echo "File does not exist" | ||||
|   exit 1 | ||||
| fi | ||||
| 
 | ||||
| # Verify file content | ||||
| content="$(cat $file)" | ||||
| echo "File content:\n$content" | ||||
| if [ -z "$(echo $content | grep --fixed-strings "$prefix $GITHUB_RUN_ID")" ]; then | ||||
|   echo "Unexpected file content" | ||||
|   exit 1 | ||||
| fi | ||||
							
								
								
									
										3091
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3091
									
								
								dist/restore/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										3072
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3072
									
								
								dist/save/index.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -5,12 +5,11 @@ | ||||
|   "description": "Cache dependencies and build outputs", | ||||
|   "main": "dist/restore/index.js", | ||||
|   "scripts": { | ||||
|     "build": "tsc", | ||||
|     "build": "tsc && ncc build -o dist/restore src/restore.ts && ncc build -o dist/save src/save.ts", | ||||
|     "test": "tsc --noEmit && jest --coverage", | ||||
|     "lint": "eslint **/*.ts --cache", | ||||
|     "format": "prettier --write **/*.ts", | ||||
|     "format-check": "prettier --check **/*.ts", | ||||
|     "release": "ncc build -o dist/restore src/restore.ts && ncc build -o dist/save src/save.ts && git add -f dist/" | ||||
|     "format-check": "prettier --check **/*.ts" | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 eric sciple
						eric sciple