name: Test

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14, 16]
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node-version }}
      - run: npm install
      - run: npm run lint

  mocha:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: chmod
        run: chmod -R 777 server/php/files
      - name: docker-compose build
        run: docker-compose build example mocha
      - name: mocha
        run: docker-compose run --rm mocha
      - name: docker-compose logs
        if: always()
        run: docker-compose logs example
      - name: docker-compose down
        if: always()
        run: docker-compose down -v

  wdio-chrome:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: chmod
        run: chmod -R 777 server/php/files wdio/reports
      - name: docker-compose build
        run: docker-compose build example
      - name: wdio chrome
        run: docker-compose run --rm wdio
      - name: docker-compose logs
        if: always()
        run: docker-compose logs example
      - name: docker-compose down
        if: always()
        run: docker-compose down -v
      - name: Upload reports
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: reports
          path: wdio/reports

  wdio-firefox:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: chmod
        run: chmod -R 777 server/php/files wdio/reports
      - name: docker-compose build
        run: docker-compose build example
      - name: wdio firefox
        run: docker-compose run --rm wdio conf/firefox.js
      - name: docker-compose logs
        if: always()
        run: docker-compose logs example
      - name: docker-compose down
        if: always()
        run: docker-compose down -v
      - name: Upload reports
        if: always()
        uses: actions/upload-artifact@v2
        with:
          name: reports
          path: wdio/reports
