Improve asio sys build script #750
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: cpal | |
on: [push, pull_request] | |
jobs: | |
clippy-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install alsa | |
run: sudo apt-get install libasound2-dev | |
- name: Install libjack | |
run: sudo apt-get install libjack-jackd2-dev libjack-jackd2-0 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: clippy | |
target: armv7-linux-androideabi | |
- name: Run clippy | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all --all-features | |
- name: Run clippy for Android target | |
uses: actions-rs/clippy-check@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all --features asio --features oboe/fetch-prebuilt --target armv7-linux-androideabi | |
rustfmt-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: rustfmt | |
- name: Run rustfmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
cargo-publish: | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
- name: Update apt | |
run: sudo apt update | |
- name: Install alsa | |
run: sudo apt-get install libasound2-dev | |
- name: Verify publish crate | |
uses: katyo/publish-crates@v1 | |
with: | |
dry-run: true | |
ignore-unpublished-changes: true | |
- name: Publish crate | |
uses: katyo/publish-crates@v1 | |
with: | |
ignore-unpublished-changes: true | |
registry-token: ${{ secrets.CRATESIO_TOKEN }} | |
ubuntu-test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Update apt | |
run: sudo apt update | |
- name: Install alsa | |
run: sudo apt-get install libasound2-dev | |
- name: Install libjack | |
run: sudo apt-get install libjack-jackd2-dev libjack-jackd2-0 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Run without features | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all --no-default-features --verbose | |
- name: Run all features | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --all --all-features --verbose | |
linux-check-and-test-armv7: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v2 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: armv7-unknown-linux-gnueabihf | |
override: true | |
- name: Build image | |
run: docker build -t cross/cpal_armv7:v1 ./ | |
- name: Check without features for armv7 | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
use-cross: true | |
args: --target armv7-unknown-linux-gnueabihf --workspace --no-default-features --verbose | |
- name: Test without features for armv7 | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
use-cross: true | |
args: --target armv7-unknown-linux-gnueabihf --workspace --no-default-features --verbose | |
- name: Check all features for armv7 | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
use-cross: true | |
args: --target armv7-unknown-linux-gnueabihf --workspace --all-features --verbose | |
- name: Test all features for armv7 | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
use-cross: true | |
args: --target armv7-unknown-linux-gnueabihf --workspace --all-features --verbose | |
asmjs-wasm32-test: | |
strategy: | |
matrix: | |
target: [asmjs-unknown-emscripten, wasm32-unknown-emscripten] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup Emscripten toolchain | |
uses: mymindstorm/setup-emsdk@v10 | |
with: | |
version: 2.0.9 # https://github.com/rust-lang/rust/issues/85821 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Build beep example | |
run: cargo build --example beep --release --target ${{ matrix.target }} | |
wasm32-bindgen-test: | |
strategy: | |
matrix: | |
target: [wasm32-unknown-unknown] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Build beep example | |
run: cargo build --example beep --target ${{ matrix.target }} --features=wasm-bindgen | |
wasm32-wasi-test: | |
strategy: | |
matrix: | |
target: [wasm32-wasi] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{ matrix.target }} | |
- name: Build beep example | |
run: cargo build --example beep --target ${{ matrix.target }} | |
windows-test: | |
strategy: | |
matrix: | |
version: [x86_64, i686] | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install ASIO SDK | |
env: | |
LINK: https://www.steinberg.net/asiosdk | |
run: | | |
curl -L -o asio.zip $env:LINK | |
7z x -oasio asio.zip | |
move asio\*\* asio\ | |
- name: Install ASIO4ALL | |
run: choco install asio4all | |
- name: Install llvm and clang | |
run: choco install llvm | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{ matrix.version }}-pc-windows-msvc | |
override: true | |
- name: Run without features | |
run: cargo test --all --no-default-features --verbose | |
- name: Run all features | |
run: | | |
$Env:CPAL_ASIO_DIR = "$Env:GITHUB_WORKSPACE\asio" | |
cargo test --all --all-features --verbose | |
macos-test: | |
runs-on: macOS-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install llvm and clang | |
run: brew install llvm | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Build beep example | |
run: cargo build --example beep | |
- name: Run without features | |
run: cargo test --all --no-default-features --verbose | |
- name: Run all features | |
run: cargo test --all --all-features --verbose | |
android-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
target: armv7-linux-androideabi | |
- name: Check android | |
run: cargo check --example android --target armv7-linux-androideabi --features oboe/fetch-prebuilt --verbose | |
- name: Check beep | |
run: cargo check --example beep --target armv7-linux-androideabi --features oboe/fetch-prebuilt --verbose | |
- name: Check enumerate | |
run: cargo check --example enumerate --target armv7-linux-androideabi --features oboe/fetch-prebuilt --verbose | |
- name: Check feedback | |
run: cargo check --example feedback --target armv7-linux-androideabi --features oboe/fetch-prebuilt --verbose | |
- name: Check record_wav | |
run: cargo check --example record_wav --target armv7-linux-androideabi --features oboe/fetch-prebuilt --verbose | |
android-apk-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Android targets | |
run: | | |
rustup target add armv7-linux-androideabi | |
rustup target add aarch64-linux-android | |
rustup target add i686-linux-android | |
rustup target add x86_64-linux-android | |
- name: Install Cargo APK | |
run: cargo install cargo-apk | |
- name: Build APK | |
run: cargo apk build --example android | |
ios-build: | |
runs-on: macOS-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install llvm and clang | |
run: brew install llvm | |
- name: Install stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Add iOS targets | |
run: rustup target add aarch64-apple-ios x86_64-apple-ios | |
- name: Install cargo lipo | |
run: cargo install cargo-lipo | |
- name: Build iphonesimulator feedback example | |
run: cd examples/ios-feedback && xcodebuild -scheme cpal-ios-example -configuration Debug -derivedDataPath build -sdk iphonesimulator | |
wasm-beep-build: | |
# this only confirms that the Rust source builds | |
# and checks to prevent regressions like #721. | |
# | |
# It does not test the javascript/web integration | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install Target | |
run: rustup target add wasm32-unknown-unknown | |
- name: Cargo Build | |
working-directory: ./examples/wasm-beep | |
run: cargo build --target wasm32-unknown-unknown | |