mirror of
				https://github.com/actions/cache.git
				synced 2025-10-31 20:08:36 +08:00 
			
		
		
		
	test e2e during workflow
This commit is contained in:
		
							parent
							
								
									78a4b2143b
								
							
						
					
					
						commit
						220709cc67
					
				
							
								
								
									
										107
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										107
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							|  | @ -13,42 +13,117 @@ on: | ||||||
|       - '**.md' |       - '**.md' | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   test: |   # Build and unit test | ||||||
|     name: Test on ${{ matrix.os }} |   build: | ||||||
| 
 |  | ||||||
|     strategy: |     strategy: | ||||||
|       matrix: |       matrix: | ||||||
|         os: [ubuntu-latest, windows-latest, macOS-latest] |         os: [ubuntu-latest, windows-latest, macOS-latest] | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
| 
 |  | ||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
| 
 |  | ||||||
|     steps: |     steps: | ||||||
|     - uses: actions/checkout@v1 |     - name: Checkout | ||||||
| 
 |       uses: actions/checkout@v2 | ||||||
|     - uses: actions/setup-node@v1 |     - name: Setup Node.js | ||||||
|  |       uses: actions/setup-node@v1 | ||||||
|       with: |       with: | ||||||
|         node-version: '12.x' |         node-version: '12.x' | ||||||
| 
 |     - name: Determine npm cache directory | ||||||
|     - name: Get npm cache directory |  | ||||||
|       id: npm-cache |       id: npm-cache | ||||||
|       run: | |       run: | | ||||||
|         echo "::set-output name=dir::$(npm config get cache)" |         echo "::set-output name=dir::$(npm config get cache)" | ||||||
| 
 |     - name: Restore npm cache | ||||||
|     - uses: actions/cache@v1 |       uses: actions/cache@v1 | ||||||
|       with: |       with: | ||||||
|         path: ${{ steps.npm-cache.outputs.dir }} |         path: ${{ steps.npm-cache.outputs.dir }} | ||||||
|         key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} |         key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | ||||||
|         restore-keys: | |         restore-keys: | | ||||||
|           ${{ runner.os }}-node- |           ${{ runner.os }}-node- | ||||||
| 
 |  | ||||||
|     - run: npm ci |     - run: npm ci | ||||||
| 
 |  | ||||||
|     - name: Prettier Format Check |     - name: Prettier Format Check | ||||||
|       run: npm run format-check |       run: npm run format-check | ||||||
| 
 |  | ||||||
|     - name: ESLint Check |     - name: ESLint Check | ||||||
|       run: npm run lint |       run: npm run lint | ||||||
| 
 |  | ||||||
|     - name: Build & Test |     - name: Build & Test | ||||||
|       run: npm run 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/* | __tests__/runner/* | ||||||
| 
 | 
 | ||||||
| # comment out in distribution branches |  | ||||||
| dist/ |  | ||||||
| 
 |  | ||||||
| node_modules/ | node_modules/ | ||||||
| lib/ | 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", |   "description": "Cache dependencies and build outputs", | ||||||
|   "main": "dist/restore/index.js", |   "main": "dist/restore/index.js", | ||||||
|   "scripts": { |   "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", |     "test": "tsc --noEmit && jest --coverage", | ||||||
|     "lint": "eslint **/*.ts --cache", |     "lint": "eslint **/*.ts --cache", | ||||||
|     "format": "prettier --write **/*.ts", |     "format": "prettier --write **/*.ts", | ||||||
|     "format-check": "prettier --check **/*.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/" |  | ||||||
|   }, |   }, | ||||||
|   "repository": { |   "repository": { | ||||||
|     "type": "git", |     "type": "git", | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 eric sciple
						eric sciple