jolly 0.3.0

a bookmark manager meets an application launcher, developed with iced
Documentation
name: CI Build

on:
  push:
    branches: [ "main" ]
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  format:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3
      
    - name: Check Formatting
      run: cargo fmt --all --check

  cargo-deny:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        checks:
          - advisories
          - bans licenses sources

    # Prevent sudden announcement of a new advisory from failing ci:
    continue-on-error: ${{ matrix.checks == 'advisories' }}

    steps:
    - uses: actions/checkout@v3
    - uses: EmbarkStudios/cargo-deny-action@v1
      with:
        command: check ${{ matrix.checks }}
      
  test:
    strategy:
      matrix:
        os: [windows-latest, ubuntu-latest, macos-latest]
    runs-on: ${{ matrix.os }}

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Determine MSRV
      shell: bash
      run: |
        msrv=$(grep rust-version Cargo.toml | cut -d '"' -f2)
        echo "MSRV=$msrv" >> $GITHUB_ENV

    - name: Install MSRV rustc
      uses: dtolnay/rust-toolchain@master
      with:
        toolchain: ${{ env.MSRV }}

    - name: Install dependencies
      run: sudo apt-get install -y --no-install-recommends shared-mime-info xdg-utils gnome-icon-theme
      if: startsWith(matrix.os, 'ubuntu-')
        
    - name: Build
      run: cargo build --verbose
    - name: Run tests
      run: cargo test --verbose