jsonc-parser 0.21.0

JSONC parser.
Documentation
name: CI

on: [push, pull_request]

jobs:
  build:
    name: ${{ matrix.config.kind }} ${{ matrix.config.os }}
    runs-on: ${{ matrix.config.os }}
    strategy:
      matrix:
        config:
          - os: ubuntu-latest
            kind: test_release
          - os: ubuntu-latest
            kind: test_debug

    env:
      CARGO_INCREMENTAL: 0
      RUST_BACKTRACE: full

    steps:
    - uses: actions/checkout@v2
    - uses: actions-rs/toolchain@v1
      with:
        profile: minimal
        toolchain: 1.58.0
        override: true

    - uses: Swatinem/rust-cache@v1

    - name: Build debug
      if: matrix.config.kind == 'test_debug'
      run: cargo build --verbose
    - name: Build release
      if: matrix.config.kind == 'test_release'
      run: cargo build --release --verbose

    - name: Test debug
      if: matrix.config.kind == 'test_debug'
      run: cargo test --verbose --all-features
    - name: Test release
      if: matrix.config.kind == 'test_release'
      run: cargo test --release --verbose --all-features

      # CARGO PUBLISH
    - name: Cargo login
      if: matrix.config.kind == 'test_release' && startsWith(github.ref, 'refs/tags/')
      run: cargo login ${{ secrets.CRATES_TOKEN }}

    - name: Cargo publish
      if: matrix.config.kind == 'test_release' && startsWith(github.ref, 'refs/tags/')
      run: cargo publish

  benchmark:
    name: Benchmarks
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install latest nightly
      uses: actions-rs/toolchain@v1
      with:
        toolchain: nightly
        override: true
    - name: Cache cargo
      uses: actions/cache@v2
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
    # Run benchmark and stores the output to a file
    - name: Run benchmark
      run: cargo +nightly bench --features serde | tee output.txt
    # Run `github-action-benchmark` action
    - name: Store benchmark result
      uses: rhysd/github-action-benchmark@v1
      with:
        tool: 'cargo'
        output-file-path: output.txt
        fail-on-alert: true
        github-token: ${{ secrets.GITHUB_TOKEN }}
        auto-push: ${{ github.ref == 'refs/heads/main' }}