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