|
13 | 13 | TAURI_ENV: "true" |
14 | 14 | NEXT_PUBLIC_BACKEND_HOST: "https://xgen.x2bee.com" |
15 | 15 | NEXT_PUBLIC_BACKEND_PORT: "" |
| 16 | + GRAPH_TOOL_CALL_VERSION: "0.13.1" |
16 | 17 |
|
17 | 18 | jobs: |
18 | 19 | build-windows: |
19 | 20 | runs-on: windows-latest |
20 | | - timeout-minutes: 60 |
| 21 | + timeout-minutes: 90 |
21 | 22 |
|
22 | 23 | steps: |
23 | 24 | - name: Checkout |
24 | 25 | uses: actions/checkout@v4 |
25 | 26 |
|
| 27 | + # --- PyInstaller: graph-tool-call sidecar --- |
| 28 | + - name: Setup Python |
| 29 | + uses: actions/setup-python@v5 |
| 30 | + with: |
| 31 | + python-version: '3.12' |
| 32 | + |
| 33 | + - name: Build graph-tool-call sidecar (Windows) |
| 34 | + shell: bash |
| 35 | + run: | |
| 36 | + pip install "graph-tool-call[mcp]==$GRAPH_TOOL_CALL_VERSION" pyinstaller |
| 37 | + # Find the entry point |
| 38 | + ENTRY=$(python -c "import graph_tool_call.__main__; print(graph_tool_call.__main__.__file__)") |
| 39 | + echo "Entry point: $ENTRY" |
| 40 | + pyinstaller --onefile --name graph-tool-call --hidden-import graph_tool_call "$ENTRY" |
| 41 | + # Copy to Tauri sidecar directory with target triple suffix |
| 42 | + mkdir -p src-tauri/binaries |
| 43 | + cp dist/graph-tool-call.exe "src-tauri/binaries/graph-tool-call-x86_64-pc-windows-msvc.exe" |
| 44 | + echo "Sidecar built: $(ls -lh src-tauri/binaries/)" |
| 45 | +
|
| 46 | + # --- Frontend: xgen-frontend clone & build --- |
26 | 47 | - name: Setup Node.js |
27 | 48 | uses: actions/setup-node@v4 |
28 | 49 | with: |
|
56 | 77 | if (!(Test-Path "frontend/out")) { Write-Error "frontend/out not found"; exit 1 } |
57 | 78 | Write-Host "Frontend build OK: $(Get-ChildItem -Recurse frontend/out -File | Measure-Object | Select-Object -ExpandProperty Count) files" |
58 | 79 |
|
| 80 | + # --- Tauri: Rust build --- |
59 | 81 | - name: Setup Rust |
60 | 82 | uses: dtolnay/rust-toolchain@stable |
61 | 83 |
|
@@ -88,12 +110,32 @@ jobs: |
88 | 110 |
|
89 | 111 | build-macos: |
90 | 112 | runs-on: macos-latest |
91 | | - timeout-minutes: 60 |
| 113 | + timeout-minutes: 90 |
92 | 114 |
|
93 | 115 | steps: |
94 | 116 | - name: Checkout |
95 | 117 | uses: actions/checkout@v4 |
96 | 118 |
|
| 119 | + # --- PyInstaller: graph-tool-call sidecar --- |
| 120 | + - name: Setup Python |
| 121 | + uses: actions/setup-python@v5 |
| 122 | + with: |
| 123 | + python-version: '3.12' |
| 124 | + |
| 125 | + - name: Build graph-tool-call sidecar (macOS) |
| 126 | + run: | |
| 127 | + pip install "graph-tool-call[mcp]==$GRAPH_TOOL_CALL_VERSION" pyinstaller |
| 128 | + # Find the entry point |
| 129 | + ENTRY=$(python -c "import graph_tool_call.__main__; print(graph_tool_call.__main__.__file__)") |
| 130 | + echo "Entry point: $ENTRY" |
| 131 | + pyinstaller --onefile --name graph-tool-call --hidden-import graph_tool_call "$ENTRY" |
| 132 | + # Copy to Tauri sidecar directory with target triple suffix |
| 133 | + mkdir -p src-tauri/binaries |
| 134 | + cp dist/graph-tool-call "src-tauri/binaries/graph-tool-call-aarch64-apple-darwin" |
| 135 | + chmod +x "src-tauri/binaries/graph-tool-call-aarch64-apple-darwin" |
| 136 | + echo "Sidecar built: $(ls -lh src-tauri/binaries/)" |
| 137 | +
|
| 138 | + # --- Frontend --- |
97 | 139 | - name: Setup Node.js |
98 | 140 | uses: actions/setup-node@v4 |
99 | 141 | with: |
@@ -122,6 +164,7 @@ jobs: |
122 | 164 | test -d frontend/out || (echo "frontend/out not found" && exit 1) |
123 | 165 | echo "Frontend build OK: $(find frontend/out -type f | wc -l) files" |
124 | 166 |
|
| 167 | + # --- Tauri --- |
125 | 168 | - name: Setup Rust |
126 | 169 | uses: dtolnay/rust-toolchain@stable |
127 | 170 |
|
|
0 commit comments