Revision control
Copy as Markdown
Other Tools
name: Build
on: [push, pull_request]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
rust: [stable, nightly]
os: [ubuntu-24.04, windows-2025, macos-14]
type: [Release, Debug]
steps:
- uses: actions/checkout@v2
- name: Install Rust
run: |
rustup toolchain install ${{ matrix.rust }} --profile minimal
rustup component add rustfmt --toolchain ${{ matrix.rust }}
rustup component add clippy --toolchain ${{ matrix.rust }}
- name: Install Rust (Android target)
run: rustup target add x86_64-linux-android --toolchain ${{ matrix.rust }}
if: matrix.os == 'ubuntu-24.04'
- name: Install Dependencies (Linux)
run: sudo apt-get update && sudo apt-get install libpulse-dev pulseaudio libdbus-1-dev
if: matrix.os == 'ubuntu-24.04'
- name: Check format
shell: bash
run: rustup run ${{ matrix.rust }} cargo fmt -- --check
- name: Clippy
shell: bash
run: rustup run ${{ matrix.rust }} cargo clippy -- -D warnings
- name: Build
shell: bash
run: rustup run ${{ matrix.rust }} cargo build --all
- name: Build (Android)
shell: bash
run: rustup run ${{ matrix.rust }} cargo build --target x86_64-linux-android --all
if: matrix.os == 'ubuntu-24.04'
- name: Test
shell: bash
run: rustup run ${{ matrix.rust }} cargo test --all
# setrlimit64 error in the CI container
if: matrix.os != 'ubuntu-24.04'