rustify 0.7.0

A Rust library for interacting with HTTP API endpoints.
Documentation
on:
  push:
    paths-ignore:
      - '**.md'
  pull_request:
    paths-ignore:
      - '**.md'
  workflow_dispatch:

name: CI

env:
  RUST_TOOLCHAIN: stable
  TOOLCHAIN_PROFILE: minimal

jobs:
  lint:
    name: Run cargo fmt and cargo clippy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2
      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: ${{ env.TOOLCHAIN_PROFILE }}
          toolchain: ${{ env.RUST_TOOLCHAIN }}
          override: true
          components: rustfmt, clippy
      - name: Use cache
        uses: Swatinem/rust-cache@v1
      - name: Run cargo fmt
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
      - name: Run cargo clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings
  test:
    name: Run cargo test
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v2
      - name: Install stable toolchain
        uses: actions-rs/toolchain@v1
        with:
          profile: ${{ env.TOOLCHAIN_PROFILE }}
          toolchain: ${{ env.RUST_TOOLCHAIN }}
          override: true
      - name: Use cache
        uses: Swatinem/rust-cache@v1
      - name: Run cargo test with -no-run (compile tests)
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --no-run
      - name: Run cargo test
        uses: actions-rs/cargo@v1
        env:
          RUST_TEST_THREADS: 1
        with:
          command: test
          args: --all-features
  publish:
    name: Publish to crates.io
    runs-on: ubuntu-latest
    if: startsWith(github.event.ref, 'refs/tags/v')
    needs: [lint, test]
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
            profile: ${{ env.TOOLCHAIN_PROFILE }}
            toolchain: ${{ env.RUST_TOOLCHAIN }}
            override: true
      - uses: katyo/publish-crates@v1
        with:
            registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}