sesame_cli 0.2.0

P2P encrypted chat with deniable authentication, panic mode, and multi-peer mesh
name: Release

on:
  push:
    tags:
      - "v*"

jobs:
  build:
    name: ${{ matrix.target }}
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        include:
          - target: x86_64-pc-windows-msvc
            os: windows-latest
            ext: .exe
          - target: x86_64-unknown-linux-gnu
            os: ubuntu-latest
            ext: ""
          - target: aarch64-apple-darwin
            os: macos-latest
            ext: ""

    steps:
      - uses: actions/checkout@v4

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

      - name: Build
        run: cargo build --release --target ${{ matrix.target }}

      - name: Package
        shell: bash
        run: |
          cd target/${{ matrix.target }}/release
          tar czf sesame-${{ matrix.target }}.tar.gz sesame${{ matrix.ext }}
          echo "asset=sesame-${{ matrix.target }}.tar.gz" >> $GITHUB_OUTPUT
        id: package

      - name: Upload
        uses: actions/upload-artifact@v4
        with:
          name: sesame-${{ matrix.target }}
          path: target/${{ matrix.target }}/release/sesame-${{ matrix.target }}.tar.gz

  release:
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/download-artifact@v4
        with:
          pattern: sesame-*
          merge-multiple: true

      - name: Create Release
        uses: softprops/action-gh-release@v2
        with:
          files: sesame-*.tar.gz
          generate_release_notes: true