111 lines
3.7 KiB
YAML
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
|