libpd-rs 0.2.0

Safe rust abstractions over libpd
name: CI

on:
  push:
  pull_request:

env:
  CARGO_TERM_COLOR: always

jobs:
  build_and_test_linux:
    name: build-and-test-linux
    runs-on: ubuntu-latest
    strategy:
      matrix:
        toolchain:
          - stable
          # - beta
          # - nightly
    steps:
      - uses: actions/checkout@v3
      - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
      - run: sudo apt install libasound2-dev && sudo apt install alsa-utils
      - run: cargo build --verbose --release
      - run: cargo test -- --nocapture

      - uses: actions-rs/tarpaulin@v0.1
        with:
          version: "0.15.0"
          args: "-- --test-threads 1"

      - name: Upload to codecov.io
        uses: codecov/codecov-action@v1.0.2
        with:
          token: ${{secrets.CODECOV_TOKEN}}

      - name: Archive code coverage results
        uses: actions/upload-artifact@v4
        with:
          name: code-coverage-report
          path: cobertura.xml

  build_and_test_mac:
    name: build-and-test-mac
    runs-on: macos-latest
    strategy:
      matrix:
        toolchain:
          - stable
          # - beta
          # - nightly
    steps:
      - uses: actions/checkout@v3
      - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
      - run: cargo build --verbose --release
      - run: cargo test -- --nocapture

  build_and_test_windows:
    name: build-and-test-windows
    runs-on: windows-latest
    strategy:
      matrix:
        toolchain:
          - stable
          # - beta
          # - nightly
    steps:
      - uses: actions/checkout@v3
      - run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
      - run: cargo build --verbose --release
      - run: cargo test -- --nocapture