name: node-js-ci on: pull_request: branches: - master push: branches: - master jobs: build: runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] node-version: [12.x, 14.x, 15.x, 16.x] steps: - uses: actions/checkout@v2 - name: Cache node modules uses: actions/cache@v2 env: cache-name: cache-node-modules with: # npm cache files are stored in `~/.npm` on Linux/macOS path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - name: Test uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - run: npm install - run: npm test