tryexpand 0.14.0

Test harness for macro expansion
Documentation
name: Rust

on:
  push:
    branches: [main]
  pull_request:
    branches: [main, "**"]
    paths-ignore:
      - "CHANGELOG.md"

jobs:
  info:
    name: Rust Info
    runs-on: ubuntu-latest
    steps:
      - name: Rustup Show
        shell: bash
        run: rustup show
      - name: Rustup Version
        shell: bash
        run: rustup --version

  check:
    name: Check
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
      - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
        with:
          toolchain: stable
      - run: cargo check

  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
      - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
        with:
          # update `cargo-expand` accordingly, when bumping MSRV:
          toolchain: 1.91.0
          components: rust-src
      - uses: cargo-bins/cargo-binstall@dc19f1e48450eefe5a29b8da6c6b00a87d730b37 # v1.18.1
      - run: cargo binstall cargo-expand@1.0.121 --no-confirm
      - run: cargo test
      - run: cargo test --manifest-path tests/other-tests/Cargo.toml -- --test-threads=1
      - run: cargo test --manifest-path tests/macro-tests/Cargo.toml -- --test-threads=1
      - run: cargo test --manifest-path tests/proc-macro-tests/Cargo.toml -- --test-threads=1
      - run: cargo test --manifest-path tests/virtual-workspace-tests/Cargo.toml --workspace -- --test-threads=1
      - run: cargo test --manifest-path tests/virtual-workspace-tests/excluded-tests/Cargo.toml -- --test-threads=1
      - run: cargo test --manifest-path tests/workspace-tests/Cargo.toml --workspace -- --test-threads=1
      - run: cargo test --manifest-path tests/workspace-tests/excluded-tests/Cargo.toml -- --test-threads=1

  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
      - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
        with:
          toolchain: stable
          components: rustfmt
      - run: cargo fmt --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
      - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
        with:
          toolchain: stable
          components: clippy
      - run: cargo clippy -- -D warnings

  minimal_versions:
    name: Compile and test with minimal versions
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
      - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
        with:
          toolchain: nightly
      - uses: taiki-e/install-action@e445549abfcabe1b4106a8da1be899f392a60abc # cargo-hack
      - uses: taiki-e/install-action@f22f7aab6ce9fac9f097898e098c9b9f489ab1fb # cargo-minimal-versions
      - name: minimal-versions check
        run: cargo minimal-versions check --workspace --all-features --ignore-private -v
      - name: minimal-versions build
        run: cargo minimal-versions build --workspace --all-features --ignore-private -v
      - name: minimal-versions test
        run: cargo minimal-versions test --release --workspace --all-features -v
        continue-on-error: true

  msrv:
    name: Verify minimal supported rust version
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
      - uses: dtolnay/rust-toolchain@e97e2d8cc328f1b50210efc529dca0028893a2d9 # v1
        with:
          toolchain: nightly
      - uses: taiki-e/install-action@e445549abfcabe1b4106a8da1be899f392a60abc # cargo-hack
      - run: cargo hack check --rust-version --workspace --all-targets --ignore-private