Skip to content

Build and Release EN

zipax-bot edited this page Aug 11, 2026 · 1 revision

Build & Release

Requirements

  • Node.js 22+ (Vite 6 / React 19)
  • Rust stable (Cargo workspace, edition 2021)
  • Tauri CLI v2

Local Build

cd zipax-cross
npm ci
npm run build          # tsc + vite build (outputs to dist/)
npx tauri build        # compile Rust and bundle

Dev mode (hot reload):

npm run tauri dev

Linux Requirements

  • Requires Ubuntu 22.04 or newer (WebKitGTK 4.1); Ubuntu 20.04 is not supported
  • System dependencies:
sudo apt-get install -y libwebkit2gtk-4.1-0 libde265-0
  • deb/rpm packages declare libde265-0 (rpm: libde265) and ghostscript dependencies
  • The installed launch command is zipax-app (not zipax)
  • Prefer AppImage on older or non-Ubuntu distributions (bundles runtime libraries)

CI/CD Release Pipeline

Workflow file: .github/workflows/release.yml

Trigger

  1. Push a version tag: git tag v0.25.6 && git push origin v0.25.6
  2. Manual: workflow_dispatch with version input (e.g. 0.25.6)

Build Matrix

Platform runner Installed dependencies
macOS macos-latest brew install cmake libde265
Windows windows-latest vcpkg libheif:x64-windows-static
Linux ubuntu-22.04 apt: webkit2gtk-4.1, ayatana, librsvg, patchelf, nasm, cmake, libde265-dev

Artifacts

  • macOS: .dmg, .app.tar.gz
  • Windows: .exe (NSIS, passive install mode), .msi (WiX)
  • Linux: .deb, .rpm, .AppImage
  • Each artifact ships with a .sig signature + latest.json (updater metadata)

Quality Checks (automatic in CI)

  • Windows icon validation: icon.ico must contain 16/32/48/256 DPI layers; StoreLogo corners transparent
  • Windows executable validation: GUI subsystem, embedded icon, no heif.dll dynamic dependency
  • Bundle size report: written to the GitHub Actions step summary

Auto-update (Updater)

  • Signing key: TAURI_SIGNING_PRIVATE_KEY (secret), password TAURI_SIGNING_PRIVATE_KEY_PASSWORD
  • Update endpoint: https://github.com/2716190547/zipax/releases/latest/download/latest.json
  • Windows install mode: passive (no prompts)

Release Checklist

  1. cargo test passes
  2. Version bumped everywhere: package.json, tauri.conf.json, Cargo.toml (workspace), package-lock.json
  3. Update RELEASE_NOTES.md
  4. Push a tag or dispatch the workflow
  5. Verify artifacts after the build, publish the draft Release

Back to Home-EN · 中文版:构建与发布

Clone this wiki locally