swimmers 0.2.0

Axum server plus TUI for orchestrating Claude Code and Codex agents across tmux panes
Documentation
name: Release

on:
  push:
    tags:
      - "v*"
  workflow_dispatch:
    inputs:
      version:
        description: "Version to release (e.g. 0.1.0)"
        required: true
        type: string

env:
  CARGO_TERM_COLOR: always
  CARGO_NET_RETRY: 10

jobs:
  build-linux-amd64:
    name: Build Linux amd64
    runs-on: ubuntu-latest
    container:
      image: rust:1-bookworm
    timeout-minutes: 30

    steps:
      - uses: actions/checkout@v4

      - name: Build release binary
        run: cargo build --release --bin swimmers

      - name: Package tarball
        run: |
          mkdir -p dist
          cp target/release/swimmers dist/swimmers-linux-amd64
          chmod +x dist/swimmers-linux-amd64
          cd dist
          sha256sum swimmers-linux-amd64 > swimmers-linux-amd64.sha256

      - uses: actions/upload-artifact@v4
        with:
          name: swimmers-linux-amd64
          path: dist/*

  release:
    name: Create Release
    needs: build-linux-amd64
    runs-on: ubuntu-22.04
    permissions:
      contents: write

    steps:
      - uses: actions/download-artifact@v4
        with:
          path: dist
          merge-multiple: true

      - uses: softprops/action-gh-release@v2
        with:
          name: ${{ github.event_name == 'workflow_dispatch' && format('v{0}', inputs.version) || github.ref_name }}
          tag_name: ${{ github.event_name == 'workflow_dispatch' && format('v{0}', inputs.version) || github.ref_name }}
          files: dist/*