name: Test

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Setup Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 12.x
      - name: npm install
        run: npm install
        env:
          CI: true
      - name: lint
        run: npm run lint
        env:
          CI: true

  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@master
        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@master
        with:
          name: reports
          path: wdio/reports
