name: Multi-OS Unit Tests

on:
  pull_request:
    paths-ignore:
      - '**/*.rs'
      - '**/*.txt'
      - '**/*.snap'
      - '**/Cargo.toml'
      - '**/Cargo.lock'
      - '**/deny.toml'
      - '.cargo/config.toml'
      - '**/clippy.toml'
      - '.github/workflows/ci-unit-tests-os.yml'

jobs:
  test:
    name: Test ${{ matrix.rust }} on ${{ matrix.os }}${{ matrix.features }}
    # We're just doing this job for the name, the platform doesn't matter.
    # So we use the platform with the most concurrent instances.
    runs-on: ubuntu-latest
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
        rust: [stable, beta]
        features: [""]
        exclude:
          - os: macos-latest
            rust: beta

    steps:
      - run: 'echo "No build required"'

  install-from-lockfile-no-cache:
    name: Install zebrad from lockfile without cache on ubuntu-latest
    runs-on: ubuntu-latest

    steps:
      - run: 'echo "No build required"'

  check-cargo-lock:
    name: Check Cargo.lock is up to date
    runs-on: ubuntu-latest

    steps:
      - run: 'echo "No build required"'

  cargo-deny:
    name: Check deny.toml ${{ matrix.checks }} ${{ matrix.features }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        checks:
          - bans
          - sources
        features: ['', '--features default-release-binaries', '--all-features']

    steps:
      - run: 'echo "No build required"'

  unused-deps:
    name: Check for unused dependencies
    runs-on: ubuntu-latest

    steps:
      - run: 'echo "No build required"'
