name: app-test on: push: branches: [master] paths: - '**' - '!README.md' - '!LICENSE' - '!CODE_OF_CONDUCT.md' - '!docs/**' - '!.github/**' pull_request: branches: [master] workflow_dispatch: jobs: app-test: runs-on: ${{ matrix.os }} name: Test NodeJS ${{ matrix.node_version }} on ${{ matrix.os }} strategy: fail-fast: false matrix: node_version: ['16', '18', '20'] os: [windows-latest, macos-latest, ubuntu-latest] steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - name: Setup NodeJS ${{ matrix.node_version }} uses: actions/setup-node@v2 with: node-version: ${{ matrix.node_version }} cache: npm cache-dependency-path: '**/package-lock.json' - name: Cache dependencies uses: actions/cache@v2 id: npm-cache with: path: | **/node_modules key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-npm- - name: Install dependencies if: steps.npm-cache.outputs.cache-hit != 'true' run: npm i - name: Test module script run: npm run test