json-structural-diff 0.1.0

A Rust JSON structural diff library
Documentation
name: json-structural-diff

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

jobs:
  clippy-rustfmt:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Install stable
      uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
        override: true
        components: clippy, rustfmt

    - name: Run rustfmt
      uses: actions-rs/cargo@v1
      with:
        command: fmt
        args: -- --check --verbose

    - name: Run cargo clippy
      uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        args: --all-features -- -D warnings

  code-coverage:

    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true

      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features --no-fail-fast
        env:
          CARGO_INCREMENTAL: '0'
          RUSTFLAGS: >
            -Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code
            -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests
          RUSTDOCFLAGS: >
            -Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code
            -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests

      - id: coverage
        uses: actions-rs/grcov@v0.1

      - name: Coveralls upload
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: ${{ steps.coverage.outputs.report }}

  tests:

    strategy:
      matrix:
        platform: [ubuntu-latest, macos-latest, windows-latest]

    runs-on: ${{ matrix.platform }}

    steps:
    - uses: actions/checkout@v2

    - name: Install stable
      uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: stable
        override: true

    - name: Build
      run: |
        cargo build --workspace --all-features

    - name: Run no-default-features tests
      run: |
        cargo test --no-default-features

    - name: Run all-features tests
      run: |
        cargo test --all-features

    - name: Generate docs
      run: |
        cargo doc --all-features --no-deps