oli-server 0.1.4

A simple, blazingly fast AI coding assistant server
Documentation
name: Update Homebrew Formula

on:
  release:
    types: [published]

jobs:
  update-homebrew-formula:
    runs-on: ubuntu-latest
    permissions:
      contents: read

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Install Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Extract version
        id: extract-version
        run: |
          echo "tag-name=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
          echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT

      - name: Build full application
        run: |
          # Build Rust backend
          cargo build --release

          # Build UI
          cd ui
          npm ci
          npm run build
          cd ..

          # Package everything
          mkdir -p dist/oli
          cp target/release/oli-server dist/oli/
          cp -r ui/dist dist/oli/ui

          # Create startup script
          cat > dist/oli/oli << 'EOF'
          #!/bin/bash

          # Find the directory where this script is located
          SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"

          # Start the server in the background
          "$SCRIPT_DIR/oli-server" &
          SERVER_PID=$!

          # Start the UI
          cd "$SCRIPT_DIR"
          node --import tsx ui/cli.js "$@"

          # Kill the server when the UI exits
          kill $SERVER_PID
          EOF

          chmod +x dist/oli/oli

          # Create tarball
          tar -czf dist/oli-${{ steps.extract-version.outputs.version }}.tar.gz -C dist oli

      - name: Calculate SHA256
        id: calculate-sha
        run: |
          echo "sha=$(shasum -a 256 dist/oli-${{ steps.extract-version.outputs.version }}.tar.gz | awk '{print $1}')" >> $GITHUB_OUTPUT

      - name: Update Homebrew Formula
        uses: mislav/bump-homebrew-formula-action@v3
        with:
          formula-name: oli
          formula-path: Formula/oli.rb
          homebrew-tap: amrit110/homebrew-oli
          download-url: https://github.com/amrit110/oli/archive/refs/tags/${{ steps.extract-version.outputs.tag-name }}.tar.gz
          commit-message: |
            oli ${{ steps.extract-version.outputs.version }}

            Created by https://github.com/amrit110/oli/actions/runs/${{ github.run_id }}
        env:
          COMMITTER_TOKEN: ${{ secrets.HOMEBREW_TOKEN }}