name: Builds & Tests

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:

    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ windows-latest, ubuntu-latest, macOS-latest]

    steps:
    - uses: actions/checkout@v2

    - name: Install libgtk-dev libwebkit2gtk-4.0
      run: sudo apt update && sudo apt install libwebkit2gtk-4.0-dev
      if: contains(matrix.os, 'ubuntu')
    - name: Update Rust
      run: rustup update stable
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --all --verbose
