cargo-udeps 0.1.21

Find unused dependencies in Cargo.toml
Documentation
name: CI

on:
  push:
    branches:
      - master
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+**'
  pull_request:

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        toolchain:
          - stable-x86_64-pc-windows-msvc
          - stable-x86_64-apple-darwin
          - stable-x86_64-unknown-linux-gnu
          - beta-x86_64-unknown-linux-gnu
          - nightly-x86_64-unknown-linux-gnu
        include:
          - toolchain: stable-x86_64-pc-windows-msvc
            toolchain_nightly: nightly-2020-10-04-x86_64-pc-windows-msvc
            os: windows-latest
          - toolchain: stable-x86_64-apple-darwin
            toolchain_nightly: nightly-2020-10-04-x86_64-apple-darwin
            os: macos-latest
          - toolchain: stable-x86_64-unknown-linux-gnu
            toolchain_nightly: nightly-2020-10-04-x86_64-unknown-linux-gnu
            os: ubuntu-18.04
          - toolchain: beta-x86_64-unknown-linux-gnu
            toolchain_nightly: nightly-2020-10-04-x86_64-unknown-linux-gnu
            os: ubuntu-18.04
          - toolchain: nightly-x86_64-unknown-linux-gnu
            toolchain_nightly: nightly-2020-10-04-x86_64-unknown-linux-gnu
            os: ubuntu-18.04

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

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: rust-toolchain ( ${{ matrix.toolchain }} )
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.toolchain }}
          default: true

      - name: rust-toolchain ( ${{ matrix.toolchain_nightly }} )
        uses: actions-rs/toolchain@v1
        with:
          toolchain: ${{ matrix.toolchain_nightly }}
          default: false

      - name: '`cargo test`'
        uses: actions-rs/cargo@v1
        with:
          command: test
          args: --no-fail-fast --verbose
        env:
          CARGO_UDEPS_TEST_TOOLCHAIN: ${{ matrix.toolchain_nightly }}

      # `locked`, `dev-deps`
      - name: '`cargo build`'
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --verbose

      # `locked`, `avoid-dev-deps`
      - name: '`cargo install --debug --locked`'
        uses: actions-rs/cargo@v1
        with:
          command: install
          args: --path . --debug --verbose --locked

      # `update`, `avoid-dev-deps`
      - name: '`cargo install --debug`'
        uses: actions-rs/cargo@v1
        with:
          command: install
          args: --path . --debug --verbose

  release:
    strategy:
      fail-fast: true
      matrix:
        target:
          - x86_64-pc-windows-msvc
          - x86_64-apple-darwin
          - x86_64-unknown-linux-gnu
        include:
          - target: x86_64-pc-windows-msvc
            os: windows-latest
          - target: x86_64-apple-darwin
            os: macos-latest
          - target: x86_64-unknown-linux-gnu
            os: ubuntu-18.04

    name: GitHub Release (${{ matrix.target }})
    runs-on: ${{ matrix.os }}
    needs: [build]
    if: startsWith(github.ref, 'refs/tags/')

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: rust-toolchain
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable-${{ matrix.target }}
          default: true

      - name: '`cargo build --release`'
        uses: actions-rs/cargo@v1
        with:
          command: build
          args: --release

      - name: Create an asset
        id: asset
        run: |
          if ${{ contains(matrix.target, 'pc-windows') }}; then
            EXE=.exe
          fi
          EXECUTABLE="./target/release/${GITHUB_REPOSITORY#*/}$EXE"
          ASSET_STEM="${GITHUB_REPOSITORY#*/}-${GITHUB_REF#refs/tags/}-${{ matrix.target }}"
          git archive -o "./$ASSET_STEM.tar" --prefix "$ASSET_STEM/" HEAD
          tar -xf "./$ASSET_STEM.tar"
          mv "$EXECUTABLE" "./$ASSET_STEM/"
          if ${{ contains(matrix.target, 'pc-windows') }}; then
            ASSET="./$ASSET_STEM.zip"
            7z a "$ASSET" "./$ASSET_STEM"
            zipinfo "$ASSET"
          else
            ASSET="./$ASSET_STEM.tar.gz"
            tar -czvf "$ASSET" "./$ASSET_STEM"
          fi
          echo "::set-output name=asset::$ASSET"
        shell: bash

      - name: GH Release
        uses: softprops/action-gh-release@v1
        with:
          files: ${{ steps.asset.outputs.asset }}
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}