petridish 0.7.1

A command-line utility that creates project layout.
Documentation
name: Continuous Integration

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  unit_tests:
    name: Unit tests
    runs-on: ${{ matrix.job.os }}
    strategy:
      matrix:
        job:
          - { os: macos-latest, target: x86_64-apple-darwin, use-cross: false }
          - {
              os: windows-latest,
              target: x86_64-pc-windows-msvc,
              use-cross: false,
            }
          - {
              os: ubuntu-latest,
              target: x86_64-unknown-linux-gnu,
              use-cross: false,
            }
          - {
              os: ubuntu-latest,
              target: x86_64-unknown-linux-musl,
              use-cross: true,
            }
          - {
              os: ubuntu-latest,
              target: i686-unknown-linux-gnu,
              use-cross: true,
            }
          - {
              os: ubuntu-latest,
              target: arm-unknown-linux-gnueabihf,
              use-cross: true,
            }
          - {
              os: ubuntu-latest,
              target: aarch64-unknown-linux-gnu,
              use-cross: true,
            }
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: ${{ matrix.job.target }}
          profile: minimal
          override: true
      - name: Unit tests
        uses: actions-rs/cargo@v1
        with:
          command: test
          use-cross: ${{ matrix.job.use-cross }}
          args: --target ${{ matrix.job.target }} --verbose -- --nocapture

  # integration_tests:
  #   name: Integration tests
  #   runs-on: ${{ matrix.os }}
  #   strategy:
  #     matrix:
  #       os: [macos-latest, ubuntu-latest]
  #       include:
  #         - os: macos-latest
  #           target: x86_64-apple-darwin
  #         - os: ubuntu-latest
  #           target: x86_64-unknown-linux-gnu
  #   steps:
  #     - name: Checkout repository
  #       uses: actions/checkout@v2
  #     - name: Install Rust
  #       uses: actions-rs/toolchain@v1
  #       with:
  #         toolchain: stable
  #         profile: minimal
  #         override: true
  #     - name: Build for release
  #       uses: actions-rs/cargo@v1
  #       with:
  #         command: build
  #         args: --target ${{ matrix.target }} --release
  #     - name: Run executable
  #       run: cargo run --release --target ${{ matrix.target }} -- < /dev/null

  rustfmt:
    name: Rustfmt
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true
          components: rustfmt
      - name: Check formatting
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v2
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true
          components: clippy
      - name: Clippy Check
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings