complexity 0.2.0

Calculate cognitive complexity of Rust code.
Documentation
name: build

on: [push]

jobs:
  test:
    strategy:
      matrix:
        toolchain: [stable, beta, nightly]

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{ matrix.toolchain }}
        profile: minimal
        override: true

    - name: Test
      run: cargo test

  lint:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

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

    - name: Rustfmt
      run: cargo fmt -- --check

    - name: Clippy
      run: cargo clippy -- -D warnings -D clippy::use-self -D clippy::items-after-statements -D clippy::if-not-else

  publish:
    if: startsWith(github.event.ref, 'refs/tags')
    needs: [test, lint]

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - name: Check tag against package version
      run: grep '^version = ' Cargo.toml | grep -q "${GITHUB_REF#refs/tags/}"

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

    - name: Publish
      run: cargo publish --token "${{ secrets.CRATES_IO_TOKEN }}"