internment 0.8.6

Easy interning of data
Documentation
on: [push, pull_request]

name: Continuous integration

jobs:
  check:
    name: Check
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
          - "1.70"
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: check
          args: --features "arc,tinyset"

  test:
    name: Test Suite
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --all-features
  docsrs:
    name: Generate docs.rs
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - nightly
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: doc
          args: --all-features
        env:
          RUSTFLAGS: --cfg docsrs
          RUSTDOCFLAGS: --cfg docsrs -Dwarnings
  msrv:
    name: Minimum supported rust version
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - "1.70"
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.rust }}
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: test
  miri-test:
      runs-on: ubuntu-latest
      strategy:
        matrix:
          rust:
            - nightly
      steps:
        - uses: actions/checkout@v2
        - uses: actions-rs/toolchain@v1
          with:
            profile: minimal
            toolchain: ${{ matrix.rust }}
            override: true
            components: miri
        - name: miri test normal_intern
          run: cargo miri test normal_intern
        ## Disabling miri test on arcintern for now, since dashmap fails miri.
        # - name: miri test arcintern
        #   run: MIRIFLAGS=-Zmiri-disable-isolation cargo miri test --features arc arcintern

  coverage:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          override: true
      - uses: actions-rs/cargo@v1
        with:
          command: test
          args: --features arc,arena,tinyset --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'
      - name: Gather coverage data
        id: coverage
        uses: droundy/grcov@master
      - name: Coveralls upload
        uses: coverallsapp/github-action@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          path-to-lcov: ${{ steps.coverage.outputs.report }}