Files
HuLa/.github/workflows/release.yml
Dawn c01304fb35 fix(common): 🐛 modify the location of the remote login window
fix packaging failure due to insufficient memory in js and node
2025-11-06 02:33:39 +08:00

147 lines
4.5 KiB
YAML
Vendored
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Release CI
on:
push:
tags:
- 'v*'
# 确保默认情况下所有 job 都只有只读权限,只有需要写权限的 job比如发布 release 的 job才会单独提升权限其他 job 依然保持最小权限,最大程度保护仓库安全
permissions:
contents: read
concurrency:
group: release-${{ github.ref }}
cancel-in-progress: true # 如果有新的发布任务,取消正在进行的任务
jobs:
prepare-frontend:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up environment variables
run: echo "${{ secrets.ENV_LOCAL_CONTENT }}" > .env.local
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Generate frontend build (typings & assets)
env:
NODE_OPTIONS: --max-old-space-size=4096
run: pnpm vite build --emptyOutDir
- name: Upload generated component typings
uses: actions/upload-artifact@v4
with:
name: components-typings
if-no-files-found: error
path: |
src/typings/components.pc.d.ts
src/typings/components.mobile.d.ts
publish-tauri:
needs: prepare-frontend
permissions:
contents: write # 授予写入仓库内容的权限
strategy:
fail-fast: false # 某个平台构建失败不影响其他平台
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
args: "--target aarch64-apple-darwin"
- platform: "macos-latest" # for Intel based macs.
args: "--target x86_64-apple-darwin"
- platform: "ubuntu-22.04"
args: ""
- platform: "windows-latest"
args: ""
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Download component typings
uses: actions/download-artifact@v4
with:
name: components-typings
path: .
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
librsvg2-dev \
patchelf \
libudev-dev \
libasound2-dev \
pkg-config \
libgtk-3-dev \
libayatana-appindicator3-dev
# 添加环境变量配置
- name: Set up environment variables
run: echo "${{ secrets.ENV_LOCAL_CONTENT }}" > .env.local
# 首先安装 pnpm
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
run_install: false
# 然后设置 Node.js
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'pnpm'
- name: Install dependencies
env:
NODE_OPTIONS: --max-old-space-size=4096
run: pnpm install
# 安装 Rust
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable # Set this to dtolnay/rust-toolchain@nightly
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Create release
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# 使用之前配置的私钥
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
# 使用之前配置的私钥密码
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
# 增加 Node.js 内存限制,避免构建时内存溢出
NODE_OPTIONS: --max-old-space-size=4096
with:
tagName: v__VERSION__ #这个动作会自动将\_\_VERSION\_\_替换为app version
releaseName: 'v__VERSION__'
releaseBody: 'See the assets to download and install this version.'
releaseDraft: true
prerelease: false
args: ${{ matrix.args }}