name: unit testing on: push jobs: build-and-test: runs-on: ubuntu-latest steps: # Checks out code from Github. - name: Checkout repo uses: actions/checkout@v2 # Restore cache if available. - name: Restore cached dependencies id: dep-cache uses: actions/cache@v2 env: cache-name: jstoxml-cache with: path: node_modules key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- # Fully install from scratch when no cache is available. - name: Install dependencies from scratch (cache miss only) if: steps.dep-cache.outputs.cache-hit != 'true' run: npm i - name: Unit tests run: npm test shell: bash