fischer-agentkit/.github/workflows/release-desktop.yml

111 lines
3.7 KiB
YAML

name: Release Desktop Client
on:
push:
tags: ['v*']
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- platform: macos-latest
target: aarch64-apple-darwin
- platform: macos-latest
target: x86_64-apple-darwin
- platform: windows-latest
target: x86_64-pc-windows-msvc
- platform: ubuntu-22.04
target: x86_64-unknown-linux-gnu
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install Linux dependencies
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev patchelf
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install Python dependencies
run: |
pip install -e ".[server]" pyinstaller
- name: Build Python sidecar
shell: bash
run: |
mkdir -p src-tauri/binaries
if [ "${{ matrix.platform }}" = "windows-latest" ]; then
python -m PyInstaller --onefile \
--name "agentkit-server-${{ matrix.target }}.exe" \
--hidden-import agentkit.server \
--hidden-import agentkit.server.app \
--hidden-import agentkit.server.routes \
--hidden-import agentkit.server.config \
--hidden-import agentkit.cli.main \
--hidden-import uvicorn.logging \
--hidden-import uvicorn.lifespan.on \
--hidden-import uvicorn.lifespan.off \
--hidden-import uvicorn.protocols.websockets.auto \
--hidden-import uvicorn.protocols.http.auto \
--hidden-import sse_starlette \
--distpath src-tauri/binaries \
--workpath build/pyinstaller-work \
--specpath build \
src/agentkit/__main__.py
else
python -m PyInstaller --onefile \
--name "agentkit-server-${{ matrix.target }}" \
--hidden-import agentkit.server \
--hidden-import agentkit.server.app \
--hidden-import agentkit.server.routes \
--hidden-import agentkit.server.config \
--hidden-import agentkit.cli.main \
--hidden-import uvicorn.logging \
--hidden-import uvicorn.lifespan.on \
--hidden-import uvicorn.lifespan.off \
--hidden-import uvicorn.protocols.websockets.auto \
--hidden-import uvicorn.protocols.http.auto \
--hidden-import sse_starlette \
--distpath src-tauri/binaries \
--workpath build/pyinstaller-work \
--specpath build \
src/agentkit/__main__.py
fi
- name: Install frontend dependencies
working-directory: src/agentkit/server/frontend
run: npm ci
- name: Install Rust dependencies
working-directory: src-tauri
run: cargo fetch
- name: Build Tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: ${{ github.ref_name }}
releaseName: 'Fischer AgentKit ${{ github.ref_name }}'
releaseBody: 'See the assets below to download and install.'
releaseDraft: true
prerelease: false