name: CI
on:
push:
branches: [master]
pull_request:
types: [ready_for_review]
branches: [master]
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- "ubuntu-latest"
- "windows-latest"
- "macos-latest"
- "ubuntu-24.04-arm"
runs-on: ["${{ matrix.os }}"]
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Install ACL and SSL
if: startsWith(matrix.os,'ubuntu')
run: sudo apt-get -y install acl-dev libssl-dev
- name: Install LLVM toolchain
if: startsWith(matrix.os,'macos')
run: |
brew install llvm@19
ls /opt/homebrew/opt/llvm@19/bin
echo "/opt/homebrew/opt/llvm@19/bin" >> $GITHUB_PATH
- name: Code format check
run: cargo fmt --check
- name: Clippy check
run: cargo clippy -- -D warnings
- name: Build (default features)
run: cargo build --verbose
- name: Build (with Iceoryx)
if: ${{ ! startsWith(matrix.os,'windows') }}
run: cargo build --features iceoryx --verbose
- name: Build (with symbol prefixing)
run: cargo build --features prefix_symbols --verbose
- name: Build (with dds security)
if: ${{ ! startsWith(matrix.os,'windows') }}
run: cargo build --features dds_security --verbose
- name: Run tests (default features)
run: cargo test --verbose
- name: Run tests (with Iceoryx)
if: ${{ ! startsWith(matrix.os,'windows') }}
run: cargo test --features iceoryx --verbose
- name: Run tests (with symbol prefixing)
run: cargo test --features prefix_symbols --verbose
- name: Run tests (with dds security)
if: ${{ ! startsWith(matrix.os,'windows') }}
run: cargo test --features dds_security --verbose