just 0.9.2

🤖 Just a command runner
Documentation
name: Build

on:
  push:
    branches:
    - master
    tags:
    - '*'
  pull_request:
    branches:
    - master

jobs:
  all:
    name: All

    strategy:
      matrix:
        os:
        - macos-latest
        - ubuntu-latest
        - windows-2016
        include:
        - os: ubuntu-latest
          target: x86_64-unknown-linux-musl
        - os: macos-latest
          target: x86_64-apple-darwin
        - os: windows-2016
          target: x86_64-pc-windows-msvc

    runs-on: ${{matrix.os}}

    env:
      RUSTFLAGS: "-D warnings"

    steps:
    - uses: actions/checkout@v2

    # An issue with BSD Tar causes sporadic failures on macOS.
    # c.f https://github.com/actions/cache/issues/403
    - name: Install GNU Tar
      if: matrix.os == 'macos-latest'
      run: |
        brew install gnu-tar
        echo /usr/local/opt/gnu-tar/libexec/gnubin > $GITHUB_PATH

    - name: Cache Cargo
      uses: actions/cache@v2
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git
          target
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

    - name: Install Main Toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        target: ${{ matrix.target }}
        profile: minimal
        components: clippy, rustfmt
        override: true

    - name: Version
      run: |
        rustup --version
        cargo --version
        cargo clippy --version

    - name: Build
      run: cargo build --all --verbose

    - name: Test
      run: cargo test --all --verbose

    - name: Clippy
      run: cargo clippy --all

    - name: Lint
      if: matrix.os != 'windows-2016'
      run: cargo run lint

    - name: Install Rustfmt Toolchain
      uses: actions-rs/toolchain@v1
      with:
        toolchain: nightly
        target: ${{ matrix.target }}
        profile: minimal
        components: rustfmt

    - name: Format
      run: cargo +nightly fmt --all -- --check

    - name: Completion Scripts
      if: matrix.os != 'windows-2016'
      run: |
        ./bin/generate-completions
        git diff --no-ext-diff --quiet --exit-code

    - name: Package
      id: package
      if: startsWith(github.ref, 'refs/tags/')
      run: ./bin/package ${{github.ref}} ${{matrix.os}} ${{ matrix.target }}
      shell: bash

    - name: Publish
      uses: softprops/action-gh-release@v1
      if: startsWith(github.ref, 'refs/tags/')
      with:
        draft: false
        files: ${{ steps.package.outputs.archive }}
        prerelease: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}