name: Test
on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
jobs:
  build:
    timeout-minutes: 30
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        browser: [chromium, firefox, webkit]
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v2
    - uses: microsoft/playwright-github-action@v1
    - name: Set up JDK 1.8
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Cache Maven packages
      uses: actions/cache@v2
      with:
        path: ~/.m2
        key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
        restore-keys: ${{ runner.os }}-m2
    - name: Download drivers
      shell: bash
      run: scripts/download_driver_for_all_platforms.sh
    - name: Build with Maven
      run: mvn -B package -D skipTests --no-transfer-progress
    - name: Run tests
      run: mvn test --no-transfer-progress
      env:
        BROWSER: ${{ matrix.browser }}
