feat: add native desktop local-first foundation

This commit is contained in:
tianma-if committed 2026-07-28 12:49:44 +08:00
1 parent d2ea527fa4
commit ec1009d4dc
63 files changed
+7865 -188

No files matched your search

+89
View File
@@ -0,0 +1,89 @@
name: Desktop build
on:
workflow_dispatch:
release:
types: [published]
permissions:
contents: write
jobs:
desktop:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: macOS arm64
os: macos-14
- name: Windows x64
os: windows-2022
- name: Linux x64
os: ubuntu-24.04
steps:
- name: Check out source
uses: actions/checkout@v4
- name: Set up Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.19
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Build Web renderer
run: bun run build:web
- name: Verify Web precache budget
run: bun run verify:web-performance
- name: Run project type checks
run: |
bun run typecheck
bun run typecheck:mobile
- name: Build debug sidecar for integration tests
run: cargo build --manifest-path crates/desktop-sidecar/Cargo.toml
- name: Run desktop regression tests
run: bun run test:desktop
- name: Build Rust sidecar
run: |
cargo fmt --manifest-path crates/desktop-sidecar/Cargo.toml -- --check
cargo clippy --manifest-path crates/desktop-sidecar/Cargo.toml --all-targets -- -D warnings
cargo test --manifest-path crates/desktop-sidecar/Cargo.toml
cargo build --manifest-path crates/desktop-sidecar/Cargo.toml --release
- name: Package desktop installer
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_IDENTITY_AUTO_DISCOVERY: ${{ secrets.EDGEEVER_MAC_CERTIFICATE_BASE64 != '' && 'true' || 'false' }}
CSC_LINK: ${{ secrets.EDGEEVER_MAC_CERTIFICATE_BASE64 }}
CSC_KEY_PASSWORD: ${{ secrets.EDGEEVER_MAC_CERTIFICATE_PASSWORD }}
APPLE_ID: ${{ secrets.EDGEEVER_APPLE_ID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.EDGEEVER_APPLE_APP_SPECIFIC_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.EDGEEVER_APPLE_TEAM_ID }}
WIN_CSC_LINK: ${{ secrets.EDGEEVER_WINDOWS_CERTIFICATE_BASE64 }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.EDGEEVER_WINDOWS_CERTIFICATE_PASSWORD }}
run: bun run --cwd apps/desktop dist -- --publish ${{ github.event_name == 'release' && 'always' || 'never' }}
- name: Verify desktop installer
run: bun scripts/verify-desktop-package.mjs
- name: Upload desktop installer and metadata
uses: actions/upload-artifact@v4
with:
name: edgeever-desktop-${{ matrix.name }}
path: |
release/desktop/**/*.{dmg,exe,AppImage,blockmap,yml}
release/desktop/**/*.zip
if-no-files-found: error
retention-days: 14