# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions name: Node.js CI on: push: branches: ['*'] pull_request: branches: [master] jobs: tests: name: Node.js ${{matrix.node-version}} on ${{matrix.os}} runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] node-version: [14, 16, 18] steps: - uses: actions/checkout@v2 with: submodules: true - name: Setup Node.js ${{matrix.node-version}} uses: actions/setup-node@v1 with: node-version: ${{matrix.node-version}} - name: Get NPM cache directory id: npm-cache run: echo "::set-output name=dir::$(npm config get cache)" - name: Cache node modules uses: actions/cache@v2 with: path: ${{steps.npm-cache.outputs.dir}} key: ${{runner.os}}-node-${{hashFiles('**/package-lock.json')}} restore-keys: | ${{runner.os}}-node- ${{runner.os}}- - name: Install the package and run tests run: | npm ci npm run build --if-present npm test