speexdsp 0.1.2

Bindings for the speexdsp library
Documentation
name: speexdsp

on: [push, pull_request]

jobs:

  rustfmt-clippy:

    runs-on: ubuntu-latest

    env:
      SPEEX_DIR: speex-dir

    steps:
    - uses: actions/checkout@v2

    - name: Install stable
      uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
        override: true
        components: rustfmt, clippy

    - name: Run rustfmt
      uses: actions-rs/cargo@v1
      with:
        command: fmt
        args: --all -- --check --verbose

    - name: Install speexdsp
      run: |
        git clone https://github.com/xiph/speexdsp.git
        cd speexdsp
        ./autogen.sh
        ./configure --prefix=$HOME/$SPEEX_DIR
        make -j4 install

    - name: Set environment variables
      run: |
        echo PKG_CONFIG_PATH="$HOME/$SPEEX_DIR/lib/pkgconfig" >> $GITHUB_ENV
        echo LD_LIBRARY_PATH="$HOME/$SPEEX_DIR/lib" >> $GITHUB_ENV

    - name: Run clippy
      uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        args: --all --all-targets --all-features --tests -- --verbose

  tests:

    strategy:
      matrix:
        conf:
         - tests
         - bench-resampler
         - bench-resampler-sse

    env:
      SPEEX_DIR: speex-dir

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install speexdsp
      run: |
        git clone https://github.com/xiph/speexdsp.git
        cd speexdsp
        ./autogen.sh
        CONF=${{ matrix.conf }}
        if [ ${CONF} = "bench-resampler" ]
        then
            ./configure --disable-sse --prefix=$HOME/$SPEEX_DIR
        else
            ./configure --prefix=$HOME/$SPEEX_DIR
        fi
        make -j4 install

    - name: Set environment variables
      run: |
        echo PKG_CONFIG_PATH="$HOME/$SPEEX_DIR/lib/pkgconfig" >> $GITHUB_ENV
        echo LD_LIBRARY_PATH="$HOME/$SPEEX_DIR/lib" >> $GITHUB_ENV

    - name: Run benchmark
      if: matrix.conf != 'tests'
      run: |
        cargo bench -q --features sys -- resampler_c
        cargo bench -q -- resampler_rust

    - name: Run no-default-features tests
      if: matrix.conf == 'tests'
      run: |
        cargo test --all --no-default-features

    - name: Run all-features tests
      if: matrix.conf == 'tests'
      run: |
        cargo test --all --all-features