Skip to content

chore: 更新到v2.0.1 #22

chore: 更新到v2.0.1

chore: 更新到v2.0.1 #22

Workflow file for this run

name: 自动构建和发布
on:
push:
tags:
- 'v*' # 推送 tag 时触发,如 v1.0.0
workflow_dispatch: # 允许手动触发
permissions:
contents: write
jobs:
# 构建 Windows 版本
build-windows:
runs-on: windows-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 安装 Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: 安装 Rust 稳定版
uses: dtolnay/rust-toolchain@stable
- name: 安装 pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: 安装依赖
run: pnpm install
- name: 构建应用
run: pnpm tauri build
- name: 检查构建产物
run: |
if (!(Test-Path "src-tauri/target/release/bundle")) {
Write-Host "构建产物目录不存在"
exit 1
}
Write-Host "构建产物目录存在,列出内容:"
Get-ChildItem "src-tauri/target/release/bundle" -File | Select-Object -First 10 | ForEach-Object { $_.FullName }
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: windows-x86_64-artifacts
path: src-tauri/target/release/bundle/
# 构建 macOS 版本
build-macos:
strategy:
matrix:
include:
- arch: x86_64
runner: macos-15-intel # Intel-based macOS runner
- arch: aarch64
runner: macos-latest # Apple Silicon macOS runner
fail-fast: false
runs-on: ${{ matrix.runner }}
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 安装 Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: 安装 Rust 稳定版
uses: dtolnay/rust-toolchain@stable
- name: 安装 pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: 安装依赖
run: pnpm install
- name: 构建应用
run: pnpm tauri build
- name: 检查构建产物
run: |
if [ ! -d "src-tauri/target/release/bundle" ]; then
echo "构建产物目录不存在"
exit 1
fi
echo "构建产物目录存在,列出内容:"
find src-tauri/target/release/bundle -type f | head -10
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: macos-${{ matrix.arch }}-artifacts
path: src-tauri/target/release/bundle/
# 构建 Linux 版本
build-linux:
runs-on: ubuntu-22.04
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 安装 Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: 安装 Rust 稳定版
uses: dtolnay/rust-toolchain@stable
- name: 安装 pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: 安装系统依赖
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libsoup2.4-dev
sudo apt-get install -y fuse libfuse2 wget file
- name: 安装依赖
run: pnpm install
- name: 构建应用
run: pnpm tauri build
- name: 检查构建产物
run: |
if [ ! -d "src-tauri/target/release/bundle" ]; then
echo "构建产物目录不存在"
exit 1
fi
echo "构建产物目录存在,列出内容:"
find src-tauri/target/release/bundle -type f | head -10
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: linux-x86_64-artifacts
path: src-tauri/target/release/bundle/
# 生成 changelog
changelog:
name: Generate changelog
runs-on: ubuntu-latest
outputs:
release_body: ${{ steps.git-cliff.outputs.content }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate a changelog
uses: orhun/git-cliff-action@v4
id: git-cliff
with:
config: .github/cliff.toml
args: -vv --latest --strip header
env:
OUTPUT: CHANGES.md
GITHUB_REPO: ${{ github.repository }}
# 创建 GitHub Release
release:
needs: [build-windows, build-macos, build-linux, changelog]
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
- name: 下载所有构建产物
uses: actions/download-artifact@v4
with:
path: artifacts/
- name: 显示下载的文件
run: find artifacts/ -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.msi" -o -name "*.exe" -o -name "*.dmg" -o -name "*.app.tar.gz" \)
- name: 创建 Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.ref_name }}
name: 'MAALogAnalyzer-${{ github.ref_name }}'
body: |
## 📦 下载说明
### Windows
- **x64**: 下载 `.msi` 安装包
### macOS
- **Intel 芯片**: 下载 `x64.dmg` 文件
- **Apple Silicon (M1/M2/M3)**: 下载 `aarch64.dmg` 文件
### Linux
- **x64**: 下载 `.deb` 文件
## 📝 更新内容
${{ needs.changelog.outputs.release_body }}
---
构建于: ${{ github.event.head_commit.timestamp }}
draft: false
prerelease: false
files: |
artifacts/*-artifacts/**/*.msi
artifacts/*-artifacts/**/*.dmg
artifacts/*-artifacts/**/*.deb
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}