name: Tests
on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Setup NodeJS
      uses: actions/setup-node@v2-beta
      with:
        node_version: '13.x'

    - name: Cache Dependencies
      uses: actions/cache@v1
      with:
        path: ~/.npm
        key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
        restore-keys: |
          ${{ runner.os }}-node-

    - name: Wait for code inspection
      uses: fountainhead/action-wait-for-check@v1.0.0
      id: wait-for-inspect
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        checkName: lint

    - name: Run Tests
      if: steps.wait-for-inspect.outputs.conclusion == 'success'
      run: |
        npm ci
        npm test

    - name: Publish to NPM
      if: steps.wait-for-inspect.outputs.conclusion == 'success'
      run: npm publish --access public
      env:
        NODE_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}