lv2 0.6.0

A safe, fast, and ergonomic framework to create LV2 plugins
Documentation
name: Rust

on:
  push:
    branches: 
    - master
    - develop
  pull_request:
    branches: 
    - master
    - develop

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        toolchain: [stable, beta, nightly]

    runs-on: ${{ matrix.os }}
    
    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{ matrix.toolchain }}
        override: true
    - name: Build
      run: cargo build --all --all-features --verbose
    - name: Run tests
      run: cargo test --all --all-features --verbose
  
  check:
    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true
        components: rustfmt, clippy
    - name: Format
      run: cargo fmt --all -- --check
    - uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        args: --all --all-features -- -D warnings

  linux-bindings:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        override: true
        target: i686-unknown-linux-gnu
    - name: Install 32-bit libc
      run: |
        sudo apt-get update
        sudo apt-get install libc6-dev-i386
    - name: Generate
      run: |
        mkdir bindings
        cargo run -p systool -- -I ./sys/lv2/ -o bindings/x86_64.rs -- -target x86_64-unknown-linux-gnu
        cargo run -p systool -- -I ./sys/lv2/ -o bindings/x86.rs -- -target i686-unknown-linux-gnu
    - uses: actions/upload-artifact@v1
      with:
        name: linux-bindings
        path: bindings