name: Test on Push

on:
  # Trigger the workflow on push or pull request,
  # but only for the main branch
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  test_Ubuntu:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Rust Cache
      uses: Swatinem/rust-cache@v2    
    - name: dependencies
      run: |
        sudo apt-get update 
        sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
    - name: Test
      run: |        
        cargo test
  test_Flatpak:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3   
    - name: Rust Cache
      uses: Swatinem/rust-cache@v2    
    - name: dependencies
      run: |
        sudo apt-get update 
        sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev
    - name: Test
      run: |        
        cargo test --features flatpak
  test_Windows:
    runs-on: windows-latest    
    steps:
    - uses: actions/checkout@v3
    - name: Install latest stable
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
    - name: Rust Cache
      id: rust_cache
      uses: Swatinem/rust-cache@v2    
    - name: Test
      run: cargo test
  test_Macos:
    runs-on: macos-latest    
    steps:
    - uses: actions/checkout@v3
    - name: Install latest stable
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
    - name: Rust Cache
      id: rust_cache
      uses: Swatinem/rust-cache@v2    
    - name: Test
      run: cargo test

