nutek-encode 0.1.0

A collection of encoding and hashing utilities
Documentation
name: Release

permissions:
    contents: write

on:
    push:
        tags:
            - v[0-9]+.*

jobs:
    create-release:
        name: Create GH release draft
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v4

            - name: Create the release
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              run: gh release create ${{ github.ref_name }} --draft --verify-tag --title ${{ github.ref_name }}

    upload-binary:
        needs: create-release
        name: ${{ matrix.target }}
        runs-on: ${{ matrix.os }}

        strategy:
            matrix:
                include:
                    - os: ubuntu-latest
                      target: x86_64-unknown-linux-gnu
                      use-cross: false

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

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

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

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

                    - os: windows-latest
                      target: x86_64-pc-windows-gnu
                      use-cross: false

                    # - os: windows-lates
                    #   target: x86_64-pc-windows-msvc
                    #   use-cross: false

        env:
            CARGO: cargo

        steps:
            - uses: actions/checkout@v4

            - name: Install Rust toolchain
              uses: dtolnay/rust-toolchain@stable
              with:
                  targets: ${{ matrix.target }}

            - name: Install cross
              if: matrix.use-cross
              uses: taiki-e/install-action@v2
              with:
                  tool: cross

            - name: Overwrite build command env variable
              if: matrix.use-cross
              shell: bash
              run: echo "CARGO=cross" >> $GITHUB_ENV

            - name: Install build deps
              shell: bash
              run: |
                  if [[ ${{ matrix.target }} == x86_64-unknown-linux-musl ]]; then
                      sudo apt-get update
                      sudo apt-get install -y musl-tools
                  fi

            - name: Build release binary
              run: ${{ env.CARGO }} build --release --locked --target ${{ matrix.target }}

            - name: Upload the binary to the release windows
              if: matrix.os == 'windows-latest'
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              run: |
                  mv target/${{ matrix.target }}/release/nutek-encode.exe target/release/nutek-encode-${{ matrix.target }}.exe
                  gh release upload ${{ github.ref_name }} target/release/nutek-encode-${{ matrix.target }}.exe
            - name: Upload the binary to the release unix
              if: matrix.os != 'windows-latest'
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              run: |
                  mv target/${{ matrix.target }}/release/nutek-encode target/release/nutek-encode-${{ matrix.target }}
                  gh release upload ${{ github.ref_name }} target/release/nutek-encode-${{ matrix.target }}