envtestkit 1.1.2

Test kit for logics with environment variable involvements
Documentation
name: ci
on:
  - push
  - pull_request

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - stable
          - beta
          - nightly
    steps:
      - name: Checkout
        uses: actions/checkout@v2

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

      - name: Build
        uses: actions-rs/cargo@v1
        with:
          command: build

      - name: Test
        uses: actions-rs/cargo@v1
        with:
          command: test

  format:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

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

      - name: Format
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

  clippy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

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

      - name: Clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings

  release:
    runs-on: ubuntu-latest
    if: github.event_name == 'push'
    needs:
      - clippy
      - format
      - test
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Plugins
        run: |
          yarn global add \
            @semantic-release/changelog \
            @semantic-release/exec \
            @semantic-release/git \
            @semantic-release/github \
            semantic-release
          echo "::add-path::$(yarn global bin)"

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

      - name: Release
        run: |
          semantic-release
        env:
          CARGO_TOKEN: ${{ secrets.CARGO_TOKEN }}
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}