mirror of
				https://kkgithub.com/actions/cache.git
				synced 2025-10-25 15:38:59 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			155 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Tests
 | |
| 
 | |
| on:
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - main
 | |
|       - releases/**
 | |
|     paths-ignore:
 | |
|       - '**.md'
 | |
|   push:
 | |
|     branches:
 | |
|       - main
 | |
|       - releases/**
 | |
|     paths-ignore:
 | |
|       - '**.md'
 | |
| 
 | |
| jobs:
 | |
|   # Build and unit test
 | |
|   build:
 | |
|     strategy:
 | |
|       matrix:
 | |
|         os: [ubuntu-latest, ubuntu-16.04, windows-latest, macOS-latest]
 | |
|       fail-fast: false
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout
 | |
|       uses: actions/checkout@v2
 | |
|     - name: Setup Node.js
 | |
|       uses: actions/setup-node@v1
 | |
|       with:
 | |
|         node-version: '12.x'
 | |
|     - name: Determine npm cache directory
 | |
|       id: npm-cache
 | |
|       run: |
 | |
|         echo "::set-output name=dir::$(npm config get cache)"
 | |
|     - name: Restore npm cache
 | |
|       uses: actions/cache@v2
 | |
|       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
 | |
|     - name: Ensure dist/ folder is up-to-date
 | |
|       if: ${{ runner.os == 'Linux' }}
 | |
|       shell: bash
 | |
|       run: |
 | |
|         npm run build
 | |
|         if [ "$(git diff --ignore-space-at-eol | wc -l)" -gt "0" ]; then
 | |
|           echo "Detected uncommitted changes after build.  See status below:"
 | |
|           git diff
 | |
|           exit 1
 | |
|         fi
 | |
|         
 | |
| 
 | |
|   # End to end save and restore
 | |
|   test-save:
 | |
|     strategy:
 | |
|       matrix:
 | |
|         os: [ubuntu-latest, ubuntu-16.04, windows-latest, macOS-latest]
 | |
|       fail-fast: false
 | |
|     runs-on: ${{ matrix.os }}
 | |
|     steps:
 | |
|     - name: Checkout
 | |
|       uses: actions/checkout@v2
 | |
|     - name: Generate files in working directory
 | |
|       shell: bash
 | |
|       run: __tests__/create-cache-files.sh ${{ runner.os }} test-cache
 | |
|     - name: Generate files outside working directory
 | |
|       shell: bash
 | |
|       run: __tests__/create-cache-files.sh ${{ runner.os }} ~/test-cache
 | |
|     - name: Save cache
 | |
|       uses: ./
 | |
|       with:
 | |
|         key: test-${{ runner.os }}-${{ github.run_id }}
 | |
|         path: |
 | |
|           test-cache
 | |
|           ~/test-cache
 | |
|   test-restore:
 | |
|     needs: test-save
 | |
|     strategy:
 | |
|       matrix:
 | |
|         os: [ubuntu-latest, ubuntu-16.04, windows-latest, macOS-latest]
 | |
|       fail-fast: false
 | |
|     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
 | |
|           ~/test-cache
 | |
|     - name: Verify cache files in working directory
 | |
|       shell: bash
 | |
|       run: __tests__/verify-cache-files.sh ${{ runner.os }} test-cache
 | |
|     - name: Verify cache files outside working directory
 | |
|       shell: bash
 | |
|       run: __tests__/verify-cache-files.sh ${{ runner.os }} ~/test-cache
 | |
| 
 | |
|   # 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 test-cache
 | |
|     - 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 test-cache
 | 
