Feat: Server refactor v1 (#1509)
Some checks are pending
Pre-commit / pre-commit (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
CodeQL Advanced / Analyze (python) (push) Waiting to run
Test / Run Python Tests (push) Waiting to run

This commit is contained in:
Tong Chen 2026-03-24 18:05:52 +08:00 committed by GitHub
parent 1e542f9d27
commit 712f20a8fa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
179 changed files with 5593 additions and 6063 deletions

View file

@ -12,6 +12,7 @@ jobs:
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
@ -39,6 +40,22 @@ jobs:
run: |
rm -rf node_modules
rm -rf release
rm -rf dist out build .vite
rm -rf node_modules/.cache || true
# Clean build outputs on GitHub-hosted runners to avoid stale artifacts in current job
- name: Clean build outputs (non-Windows)
if: "!contains(matrix.os, 'self-hosted') && runner.os != 'Windows'"
run: |
rm -rf release dist out .vite
rm -rf node_modules/.cache || true
- name: Clean build outputs (Windows)
if: "!contains(matrix.os, 'self-hosted') && runner.os == 'Windows'"
shell: pwsh
run: |
Remove-Item -Recurse -Force release, dist, out, .vite -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force node_modules/.cache -ErrorAction SilentlyContinue
- name: Setup Node.js
if: "!contains(matrix.os, 'self-hosted')"
@ -92,6 +109,20 @@ jobs:
echo "LLVM_DIR=$(brew --prefix llvm@20)/lib/cmake/llvm" >> $GITHUB_ENV
echo "CMAKE_PREFIX_PATH=$(brew --prefix llvm@20)/lib/cmake/llvm" >> $GITHUB_ENV
# Prebuild separately on macOS so signing/package issues are isolated
- name: Build Release Files (macOS prebuild)
if: runner.os == 'macOS'
timeout-minutes: 45
run: |
npm run prebuild
env:
VITE_BASE_URL: ${{ secrets.VITE_BASE_URL }}
VITE_PROXY_URL: ${{ secrets.VITE_PROXY_URL }}
VITE_STACK_PROJECT_ID: ${{ secrets.VITE_STACK_PROJECT_ID }}
VITE_STACK_PUBLISHABLE_CLIENT_KEY: ${{ secrets.VITE_STACK_PUBLISHABLE_CLIENT_KEY }}
VITE_STACK_SECRET_SERVER_KEY: ${{ secrets.VITE_STACK_SECRET_SERVER_KEY }}
USE_NPM_INSTALL_BUN: 'true'
# Step for macOS builds with signing
- name: Build Release Files (macOS with signing)
if: runner.os == 'macOS'
@ -104,8 +135,20 @@ jobs:
fi
ulimit -n 65536 2>/dev/null || ulimit -n 10240 2>/dev/null || true
echo "File descriptor limit: $(ulimit -n) (hard: $(ulimit -Hn 2>/dev/null || echo 'N/A'))"
npm run prebuild
npx electron-builder --mac --${{ matrix.arch }} --publish never
set +e
npx electron-builder --mac dmg --${{ matrix.arch }} --publish never
BUILD_EXIT=$?
if [ $BUILD_EXIT -ne 0 ]; then
echo "First attempt failed with exit code $BUILD_EXIT"
echo "Retrying once in 5 seconds..."
sleep 5
npx electron-builder --mac dmg --${{ matrix.arch }} --publish never
BUILD_EXIT=$?
fi
exit $BUILD_EXIT
env:
CSC_LINK: ${{ secrets.CERT_P12 }}
CSC_KEY_PASSWORD: ${{ secrets.CERT_PASSWORD }}
@ -113,6 +156,7 @@ jobs:
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
VITE_BASE_URL: ${{ secrets.VITE_BASE_URL }}
VITE_PROXY_URL: ${{ secrets.VITE_PROXY_URL }}
VITE_STACK_PROJECT_ID: ${{ secrets.VITE_STACK_PROJECT_ID }}
VITE_STACK_PUBLISHABLE_CLIENT_KEY: ${{ secrets.VITE_STACK_PUBLISHABLE_CLIENT_KEY }}
VITE_STACK_SECRET_SERVER_KEY: ${{ secrets.VITE_STACK_SECRET_SERVER_KEY }}
@ -127,6 +171,7 @@ jobs:
npx electron-builder --win --${{ matrix.arch }} --publish never
env:
VITE_BASE_URL: ${{ secrets.VITE_BASE_URL }}
VITE_PROXY_URL: ${{ secrets.VITE_PROXY_URL }}
VITE_STACK_PROJECT_ID: ${{ secrets.VITE_STACK_PROJECT_ID }}
VITE_STACK_PUBLISHABLE_CLIENT_KEY: ${{ secrets.VITE_STACK_PUBLISHABLE_CLIENT_KEY }}
VITE_STACK_SECRET_SERVER_KEY: ${{ secrets.VITE_STACK_SECRET_SERVER_KEY }}
@ -141,6 +186,7 @@ jobs:
npx electron-builder --linux --${{ matrix.arch }} --publish never
env:
VITE_BASE_URL: ${{ secrets.VITE_BASE_URL }}
VITE_PROXY_URL: ${{ secrets.VITE_PROXY_URL }}
VITE_STACK_PROJECT_ID: ${{ secrets.VITE_STACK_PROJECT_ID }}
VITE_STACK_PUBLISHABLE_CLIENT_KEY: ${{ secrets.VITE_STACK_PUBLISHABLE_CLIENT_KEY }}
VITE_STACK_SECRET_SERVER_KEY: ${{ secrets.VITE_STACK_SECRET_SERVER_KEY }}
@ -195,6 +241,7 @@ jobs:
path: |
release/*.AppImage
retention-days: 5
merge-release:
needs: build
runs-on: ubuntu-latest