ncspot 0.11.2

ncurses Spotify client written in Rust using librespot, inspired by ncmpc and the likes.
name: CI

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

jobs:
  check-macos:
    name: Checking ${{ matrix.build_target }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        build_target: [linux, macos, windows]
        include:
          - build_target: linux
            os: ubuntu-latest
            artifact_suffix: linux-x86_64
            target: x86_64-unknown-linux-gnu
            features: ''
          - build_target: macos
            os: macos-latest
            artifact_suffix: macos-x86_64
            target: x86_64-apple-darwin
            features: '--no-default-features --features rodio_backend,cursive/pancurses-backend'
          - build_target: windows
            os: windows-latest
            artifact_suffix: windows-x86_64
            target: x86_64-pc-windows-msvc
            features: '--no-default-features --features rodio_backend,pancurses_backend,share_clipboard,notify'
    steps:
      - name: Install Rust toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          override: true
          target: ${{ matrix.target }}
          profile: minimal
      - name: Install macOS dependencies
        if: matrix.os == 'macos-latest'
        run: brew install portaudio pkg-config
      - name: Install Linux dependencies
        if: matrix.os == 'ubuntu-latest'
        run: |
          sudo apt update
          sudo apt install libpulse-dev libdbus-1-dev libncursesw5-dev libxcb-shape0-dev libxcb-xfixes0-dev
      - uses: actions/checkout@v2
        name: Checkout src
      - uses: actions/cache@v2
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
      - name: Running cargo check
        uses: actions-rs/cargo@v1
        with:
          command: check
          args: --locked --release --target ${{ matrix.target }} ${{ matrix.features }}

  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: cargo fmt
        run: cargo fmt --all -- --check