sheldon 0.5.2

A fast, configurable, shell plugin manager.
Documentation
name: build

on: [push]

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

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2

    - uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{ matrix.toolchain }}
        components: rustfmt, clippy
        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

  test:
    needs: lint

    strategy:
      matrix:
        include:
        - { os: macos-latest, target: x86_64-apple-darwin, toolchain: stable }
        - { os: macos-latest, target: x86_64-apple-darwin, toolchain: beta }
        - { os: macos-latest, target: x86_64-apple-darwin, toolchain: nightly }
        - { os: ubuntu-latest, target: x86_64-unknown-linux-musl, toolchain: stable }
        - { os: ubuntu-latest, target: x86_64-unknown-linux-musl, toolchain: beta }
        - { os: ubuntu-latest, target: x86_64-unknown-linux-musl, toolchain: nightly }
        - { os: ubuntu-latest, target: aarch64-unknown-linux-musl, toolchain: stable }
        - { os: ubuntu-latest, target: aarch64-unknown-linux-musl, toolchain: beta }
        - { os: ubuntu-latest, target: aarch64-unknown-linux-musl, toolchain: nightly }
        - { os: ubuntu-latest, target: armv7-unknown-linux-musleabihf, toolchain: stable }
        - { os: ubuntu-latest, target: armv7-unknown-linux-musleabihf, toolchain: beta }
        # - { os: ubuntu-latest, target: armv7-unknown-linux-musleabihf, toolchain: nightly }

    name: test (${{ matrix.toolchain }}, ${{ matrix.target }})
    runs-on: ${{ matrix.os }}

    steps:
    - uses: actions/checkout@v2

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

    - name: Test
      run: |
        cargo install cross
        cross test --locked --target ${{ matrix.target }}