Files
claudia/.github/workflows/build-opensource.yml
2025-08-13 22:28:59 +08:00

113 lines
3.3 KiB
YAML

name: Build for Open Source
on:
push:
tags:
- 'v*' # 仅在创建版本标签时构建
workflow_dispatch: # 允许手动触发
jobs:
build:
permissions:
contents: write # 允许创建 Release
strategy:
fail-fast: false
matrix:
include:
# macOS 通用版本
- platform: 'macos-latest'
target: 'universal-apple-darwin'
name: 'macOS'
# Linux x64
- platform: 'ubuntu-22.04'
target: ''
name: 'Linux'
# Windows x64
- platform: 'windows-latest'
target: ''
name: 'Windows'
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js (for better compatibility)
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Setup Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> 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 \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf
- name: Install Bun
uses: oven-sh/setup-bun@v2
- name: Install frontend dependencies
run: bun install --frozen-lockfile
- name: Build Tauri app
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: "" # 禁用更新签名
with:
tagName: ${{ github.ref_name }}
releaseName: 'Claudia ${{ github.ref_name }}'
releaseBody: |
## 📦 下载说明
### macOS 用户
- 下载 `Claudia_*.dmg`
- 首次运行:右键点击应用 → 选择"打开"
### Windows 用户
- 下载 `.msi` (推荐) 或 `.exe` 安装程序
### Linux 用户
- **Ubuntu/Debian**: 下载 `.deb`
- **Fedora/RHEL**: 下载 `.rpm`
- **其他发行版**: 下载 `.AppImage`
---
查看 [完整更新日志](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md)
releaseDraft: true
prerelease: false
args: ${{ matrix.target && format('--target {0}', matrix.target) || '' }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: claudia-${{ matrix.name }}-${{ github.ref_name }}
path: |
src-tauri/target/*/release/bundle/**/*.dmg
src-tauri/target/*/release/bundle/**/*.deb
src-tauri/target/*/release/bundle/**/*.rpm
src-tauri/target/*/release/bundle/**/*.AppImage
src-tauri/target/*/release/bundle/**/*.msi
src-tauri/target/*/release/bundle/**/*.exe
!src-tauri/target/*/release/bundle/**/*-setup.exe
retention-days: 7