cpal/.github/workflows/cpal.yml

170 lines
4.2 KiB
YAML

name: cpal
on: [push, pull_request]
jobs:
clippy-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install alsa
run: sudo apt-get install libasound2-dev
- name: Install stable
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: clippy
- name: Run clippy
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all --all-features
rustfmt-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- 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'
env:
CRATESIO_TOKEN: ${{ secrets.CRATESIO_TOKEN }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install alsa
run: sudo apt-get install libasound2-dev
- name: Run cargo publish for cpal
continue-on-error: true
run: |
CPAL_TMP=$(mktemp /tmp/cpalXXX.txt) || echo "::error::mktemp error"
echo "::set-env name=CPAL_TMP::$CPAL_TMP"
cargo publish --token $CRATESIO_TOKEN 2> $CPAL_TMP
- name: Check if cpal is already published
run: |
empty=0
grep -q '[^[:space:]]' < $CPAL_TMP || empty=1
[ $empty -eq 0 ] && cat $CPAL_TMP
[ $empty -eq 1 ] || grep -q "is already uploaded" < $CPAL_TMP
ubuntu-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install alsa
run: sudo apt-get install libasound2-dev
- 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
asmjs-wasm32-test:
strategy:
matrix:
target: [asmjs-unknown-emscripten, wasm32-unknown-emscripten]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install emscripten
run: sudo apt-get install emscripten
- 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@v1
- 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@v1
- 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