name: Run Cypress tests

on: [push, pull_request]

jobs:
  cypress_tests:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [12.x]

    steps:
      - name: Checkout repository
        uses: actions/checkout@v1

      - name: Cache NPM packagees
        uses: actions/cache@v1
        id: NPM
        with:
          path: node_modules
          key: npm-cache-${{ hashFiles('package-lock.json') }}

      - name: Cache Cypress
        uses: actions/cache@v1
        id: cypress
        with:
          path: ~/.cache/Cypress
          key: cypress-cache-${{ hashFiles('package-lock.json') }}

      - name: Run Cypress
        uses: cypress-io/github-action@v2
        with:
          browser: chrome
          start: npm run pre-cypress
          
      - name: Cypress screenshots
        uses: actions/upload-artifact@v1
        if: failure()
        with:
          name: cypress-screenshots
          path: cypress/screenshots

      - name: Cypress videos
        uses: actions/upload-artifact@v1
        if: always()
        with:
          name: cypress-videos
          path: cypress/videos
