directip 0.2.6

Iridium SBD Direct-IP communication protocol
Documentation
name: Release

on:
  push:
    tags:
      - 'd*.*.*'
  workflow_dispatch:

jobs:
  publish:
    name: ${{ matrix.target }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          - os: ubuntu-latest
            target: x86_64-unknown-linux-gnu
            use-cross: false
            strip: strip

          - os: ubuntu-latest
            target: x86_64-unknown-linux-musl
            use-cross: false
            strip: strip

          - os: ubuntu-latest
            target: arm-unknown-linux-gnueabihf
            use-cross: true
            strip: arm-linux-gnueabihf-strip

          - os: ubuntu-latest
            target: aarch64-unknown-linux-gnu
            use-cross: true
            strip: aarch64-linux-gnu-strip

          - os: windows-latest
            target: x86_64-pc-windows-msvc
            use-cross: false
            binary_ext: '.exe'

          - os: macos-latest
            target: x86_64-apple-darwin
            use-cross: false
            strip: strip

          - os: macos-latest
            target: aarch64-apple-darwin
            use-cross: false
            strip: strip

    steps:
    - uses: actions/checkout@v3

    - name: Install Rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        profile: minimal
        override: true
        target: ${{ matrix.target }}

    - name: Install required dependencies
      shell: bash
      run: |
        if [[ ${{ matrix.target }} == x86_64-unknown-linux-musl ]]; then
            sudo apt-get update
            sudo apt-get install -y musl-tools
        fi
        if [[ ${{ matrix.target }} == aarch64-unknown-linux-gnu ]]; then
            sudo apt-get update
            sudo apt-get install -y binutils-aarch64-linux-gnu
        fi
        if [[ ${{ matrix.target }} == arm-unknown-linux-gnueabihf ]]; then
            sudo apt-get update
            sudo apt-get install -y binutils-arm-linux-gnueabihf
        fi

    - name: Build
      uses: actions-rs/cargo@v1
      with:
        use-cross: ${{ matrix.use-cross }}
        command: build
        args: --target ${{ matrix.target }} --release --locked -p directip-dump

    - name: Strip binary
      if: matrix.strip
      run: ${{ matrix.strip }} target/${{ matrix.target }}/release/directip-dump${{ matrix.binary_ext }}

    - name: Upload binaries to release
      uses: svenstaro/upload-release-action@v2
      with:
        repo_token: ${{ secrets.GITHUB_TOKEN }}
        file: target/${{ matrix.target }}/release/directip-dump${{ matrix.binary_ext }}
        asset_name: directip-dump-${{ matrix.target }}${{ matrix.binary_ext }}
        tag: ${{ github.ref }}