xt 0.21.0

Translate between serialized data formats
Documentation
---
name: Deep Tests

on:
  workflow_call: {}
  workflow_dispatch: {}

env:
  CARGO_TERM_COLOR: always
  CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
  NEXTEST_VERSION: '0.9'

jobs:
  cargo-publish-dry-run:
    runs-on: ubuntu-24.04
    steps:
    - name: Checkout
      uses: actions/checkout@v6
    - name: Download Toolchain
      run: |
        rustup set profile minimal
        rustup toolchain install stable
        rustup default stable
        rustc --version
    - name: Try Publishing
      run: cargo publish --dry-run

  read-msrv:
    runs-on: ubuntu-24.04
    steps:
    - name: Checkout
      uses: actions/checkout@v6
    - name: Read MSRV
      id: read-msrv
      run: |
        msrv="$(cargo metadata --no-deps --format-version=1 | jq -r '.packages[0].rust_version')"
        echo "msrv=$msrv" >> "$GITHUB_OUTPUT"
    outputs:
      msrv: ${{ steps.read-msrv.outputs.msrv }}

  stable-msrv-test:
    needs: read-msrv
    strategy:
      fail-fast: false
      matrix:
        runner:
        - ubuntu-24.04
        - macos-15
        - windows-2025-vs2026
        toolchain:
        - stable
        - ${{ needs.read-msrv.outputs.msrv }}
    runs-on: ${{ matrix.runner }}
    steps:
    - name: Checkout
      uses: actions/checkout@v6
    - name: Download Toolchain
      run: |
        rustup set profile minimal
        rustup toolchain install ${{ matrix.toolchain }}
        rustup default ${{ matrix.toolchain }}
        rustc --version
    - name: Check
      run: cargo check
    - name: Test
      run: cargo test

  linux-miri-test:
    runs-on: ubuntu-24.04
    steps:
    - name: Checkout
      uses: actions/checkout@v6
    - name: Download Toolchain
      run: |
        rustup set profile minimal
        rustup toolchain install nightly --component miri --allow-downgrade
        rustup default nightly
        rustc --version
    - name: Download Nextest
      run: curl -LsSf "https://get.nexte.st/$NEXTEST_VERSION/linux" | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
    - name: Test in Miri
      run: cargo miri nextest run -j num-cpus