name: Build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches:
- 'main'
- '!ci_test_*'
tags-ignore:
- '*'
pull_request:
branches:
- 'main'
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions-rust-lang/setup-rust-toolchain@v1
- run: rustup target add aarch64-unknown-linux-gnu x86_64-unknown-linux-gnu i686-unknown-linux-gnu powerpc-unknown-linux-gnu wasm32-unknown-unknown
- run: RUSTFLAGS="-C target-feature=+neon" cargo build --target aarch64-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+avx2" cargo build --target i686-unknown-linux-gnu
- run: cargo build --target powerpc-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+avx2" cargo build --target x86_64-unknown-linux-gnu
- run: RUSTFLAGS="-C target-feature=+simd128" cargo build --target wasm32-unknown-unknown
clippy_x86:
name: Clippy x86 Stable
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- run: cargo clippy --all-features -- -D warnings
clippy_x86_nightly:
name: Clippy x86 Nightly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- run: rustup component add clippy
- run: cargo clippy --all-features -- -D warnings
clippy_arm:
name: Clippy ARM
runs-on: ubuntu-24.04-arm
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@stable
- run: cargo clippy -- -D warnings
fuzz_avx_x86:
name: Fuzz AVX x86
runs-on: ubuntu-latest
strategy:
matrix:
feature: [ avx ]
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- run: cargo +nightly install cargo-fuzz
- run: cargo +nightly fuzz run default --no-default-features --features ${{ matrix.feature }} -- -max_total_time=12
fuzz_neon:
name: Fuzz NEON
runs-on: ubuntu-24.04-arm
strategy:
matrix:
feature: [ neon ]
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- run: cargo +nightly install cargo-fuzz
- run: cargo +nightly fuzz run default --no-default-features --features ${{ matrix.feature }} -- -max_total_time=12