dotter 0.12.14

A dotfile manager and templater written in rust
on: [push, pull_request]

name: Continuous integration

jobs:
  check:
    name: Check
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [windows-latest, ubuntu-latest, macos-latest]
        include:
          - os: windows-latest
            target: x86_64-pc-windows-msvc
          - os: ubuntu-latest
            target: x86_64-unknown-linux-musl
          - os: macos-latest
            target: x86_64-apple-darwin
      fail-fast: false
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          target: ${{ matrix.target }}
          override: true
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1
      - uses: actions-rs/cargo@v1
        with:
          command: check
          args: --verbose --locked --target ${{ matrix.target }}
  check-readme:
    name: Check README
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1
      - uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose --locked
      - name: Check README help message
        run: "[[ ! $(comm -13 <(sort README.md) <(cargo run --locked -- --help | sort)) ]] || cargo run --locked -- --help | diff - README.md"
  test:
    name: Test Suite
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1
      - uses: actions-rs/cargo@v1
        with:
          command: test
  fmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - run: rustup component add rustfmt
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
      - run: rustup component add clippy
      - name: Cache dependencies
        uses: Swatinem/rust-cache@v1
      - uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings