cyclors 0.3.10

Low-level API for the native CycloneDDS bindings (libddsc-sys).
Documentation
name: Rust

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        os-arch:
          - { os: "ubuntu-latest", arch: "X64" }
          - { os: "windows-latest", arch: "X64" }
          - { os: "macos-ventura", arch: "ARM64" }
          - { os: "ubuntu-22.04", arch: "ARM64" }
    runs-on: ["${{ matrix.os-arch.os }}", "${{ matrix.os-arch.arch }}"]

    steps:
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - name: Install ACL and SSL
        if: startsWith(matrix.os-arch.os,'ubuntu')
        run: sudo apt-get -y install acl-dev libssl-dev
      - name: Install LLVM toolchain
        if: startsWith(matrix.os-arch.os,'macos')
        run: |
          brew install llvm@19
          ls /opt/homebrew/opt/llvm@19/bin
          echo "/opt/homebrew/opt/llvm@19/bin" >> $GITHUB_PATH
      - name: Install Rust toolchain (1.85.0)
        uses: actions-rs/toolchain@v1
        with:
          toolchain: 1.85.0
          profile: minimal
          components: rustfmt, clippy
          override: true
      - name: Code format check
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: -- --check
      - name: Clippy check
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings
      - name: Build (default features)
        run: cargo build --verbose
      - name: Build (with Iceoryx)
        if: ${{ ! startsWith(matrix.os-arch.os,'window') }}
        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-arch.os,'window') }}
        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-arch.os,'window') }}
        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-arch.os,'window') }}
        run: cargo test --features dds_security --verbose