scv-cli 0.1.0

A small, extensible terminal agent runtime with a TUI and headless server
name: Release

on:
  push:
    tags: ["v*"]

permissions:
  contents: write

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        include:
          - os: macos-15
            target: aarch64-apple-darwin
          - os: macos-15-intel
            target: x86_64-apple-darwin
          - os: ubuntu-24.04
            target: x86_64-unknown-linux-gnu
          - os: ubuntu-24.04-arm
            target: aarch64-unknown-linux-gnu
    runs-on: ${{ matrix.os }}
    env:
      MACOSX_DEPLOYMENT_TARGET: "13.0"
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          targets: ${{ matrix.target }}
      - run: cargo test --workspace --locked
      - run: cargo build --release --locked --target ${{ matrix.target }}
      - name: Package
        shell: bash
        run: |
          archive="peon-${{ matrix.target }}"
          mkdir "$archive"
          cp "target/${{ matrix.target }}/release/peon" "$archive/"
          cp "target/${{ matrix.target }}/release/peon-server" "$archive/"
          cp README.md LICENSE NOTICE "$archive/"
          tar -czf "$archive.tar.gz" "$archive"
          if command -v shasum >/dev/null 2>&1; then
            shasum -a 256 "$archive.tar.gz" > "$archive.tar.gz.sha256"
          else
            sha256sum "$archive.tar.gz" > "$archive.tar.gz.sha256"
          fi
      - uses: actions/upload-artifact@v4
        with:
          name: peon-${{ matrix.target }}
          path: |
            peon-${{ matrix.target }}.tar.gz
            peon-${{ matrix.target }}.tar.gz.sha256

  publish:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/download-artifact@v4
        with:
          merge-multiple: true
      - uses: softprops/action-gh-release@v2
        with:
          files: |
            *.tar.gz
            *.sha256
          generate_release_notes: true