dependency_runner 1.4.0

ldd for Windows - and more!
Documentation
name: Dependency Runner CI

on: [push, pull_request]

jobs:
  test:
    name: ${{ matrix.target }} (${{ matrix.channel }})
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        channel: [stable, beta, nightly]
        target:
          - x86_64-pc-windows-msvc
          - x86_64-apple-darwin
          - x86_64-unknown-linux-gnu
          - x86_64-unknown-linux-musl
          - aarch64-unknown-linux-gnu
          - aarch64-unknown-linux-musl
        exclude:
          - os: ubuntu-latest
            target: x86_64-pc-windows-msvc
          - os: ubuntu-latest
            target: x86_64-apple-darwin
          - os: windows-latest
            target: x86_64-apple-darwin
          - os: windows-latest
            target: x86_64-unknown-linux-gnu
          - os: windows-latest
            target: x86_64-unknown-linux-musl
          - os: windows-latest
            target: aarch64-unknown-linux-gnu
          - os: windows-latest
            target: aarch64-unknown-linux-musl
          - os: macos-latest
            target: x86_64-pc-windows-msvc
          - os: macos-latest
            target: x86_64-unknown-linux-gnu
          - os: macos-latest
            target: x86_64-unknown-linux-musl
          - os: macos-latest
            target: aarch64-unknown-linux-gnu
          - os: macos-latest
            target: aarch64-unknown-linux-musl

    steps:
      - uses: actions/checkout@v4

      - name: Install Rust
        uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{ matrix.channel }}
          targets: ${{ matrix.target }}

      - name: Rust Cache
        uses: Swatinem/rust-cache@v2
        with:
          key: ${{ matrix.target }}

      - name: Install Cross
        if: matrix.os == 'ubuntu-latest' && (contains(matrix.target, 'linux') || contains(matrix.target, 'musl'))
        uses: taiki-e/install-action@cross

      - name: Build
        run: |

          if [ "${{ matrix.os }}" = "ubuntu-latest" ] && ([ "${{ matrix.target }}" = "aarch64-unknown-linux-gnu" ] || [ "${{ matrix.target }}" = "aarch64-unknown-linux-musl" ] || [ "${{ matrix.target }}" = "x86_64-unknown-linux-musl" ]); then
            cross build --target ${{ matrix.target }} --all-features
          else
            cargo build --target ${{ matrix.target }} --all-features
          fi
        shell: bash

      - name: Test
        run: |

          if [ "${{ matrix.os }}" = "ubuntu-latest" ] && ([ "${{ matrix.target }}" = "aarch64-unknown-linux-gnu" ] || [ "${{ matrix.target }}" = "aarch64-unknown-linux-musl" ] || [ "${{ matrix.target }}" = "x86_64-unknown-linux-musl" ]); then
            cross test --target ${{ matrix.target }} --all-features
          elif [ "${{ matrix.target }}" = "x86_64-pc-windows-msvc" ] || [ "${{ matrix.target }}" = "x86_64-apple-darwin" ] || [ "${{ matrix.target }}" = "x86_64-unknown-linux-gnu" ]; then
            cargo test --target ${{ matrix.target }} --all-features
          fi
        shell: bash