name: Tests
on:
  pull_request: { }
  push:
    branches: [ develop, master ]
  repository_dispatch:
    types: [ element-web-notify ]
env:
  # These must be set for fetchdep.sh to get the right branch
  REPOSITORY: ${{ github.repository }}
  PR_NUMBER: ${{ github.event.pull_request.number }}
jobs:
  jest:
    name: Jest
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Yarn cache
        uses: actions/setup-node@v3
        with:
          cache: 'yarn'

      - name: Install Dependencies
        run: "./scripts/layered.sh"

      - name: Get number of CPU cores
        id: cpu-cores
        uses: SimenB/github-actions-cpu-cores@v1

      - name: Run tests with coverage
        run: "yarn coverage --ci --reporters github-actions --max-workers ${{ steps.cpu-cores.outputs.count }}"

      - name: Upload Artifact
        uses: actions/upload-artifact@v2
        with:
          name: coverage
          path: |
            coverage
            !coverage/lcov-report
