Compare commits
7 Commits
v0.1.56-wi
...
v0.1.63-wi
| Author | SHA1 | Date | |
|---|---|---|---|
| e3c874bc75 | |||
| 6cae0e7feb | |||
| b566446b75 | |||
| 601a2db3cf | |||
| b795e27251 | |||
| 19d4cbce27 | |||
| 946ea03956 |
@@ -20,6 +20,18 @@ jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
run: |
|
||||
if command -v node >/dev/null 2>&1; then
|
||||
echo "Node.js already installed: $(node --version)"
|
||||
else
|
||||
echo "Installing Node.js 22..."
|
||||
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
fi
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -61,17 +73,17 @@ jobs:
|
||||
xdg-utils
|
||||
|
||||
- name: Install Rust stable
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
|
||||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: "./app/src-tauri -> target"
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22"
|
||||
run: |
|
||||
if command -v rustup >/dev/null 2>&1; then
|
||||
echo "Rust already installed: $(rustc --version)"
|
||||
rustup update stable
|
||||
rustup default stable
|
||||
else
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
|
||||
fi
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
rustc --version
|
||||
cargo --version
|
||||
|
||||
- name: Install frontend dependencies
|
||||
working-directory: ./app
|
||||
@@ -79,11 +91,15 @@ jobs:
|
||||
|
||||
- name: Install Tauri CLI
|
||||
working-directory: ./app
|
||||
run: npx tauri --version || npm install @tauri-apps/cli
|
||||
run: |
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
npx tauri --version || npm install @tauri-apps/cli
|
||||
|
||||
- name: Build Tauri app
|
||||
working-directory: ./app
|
||||
run: npx tauri build
|
||||
run: |
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
npx tauri build
|
||||
|
||||
- name: Collect artifacts
|
||||
run: |
|
||||
@@ -122,6 +138,18 @@ jobs:
|
||||
build-macos:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
run: |
|
||||
if command -v node >/dev/null 2>&1; then
|
||||
echo "Node.js already installed: $(node --version)"
|
||||
else
|
||||
echo "Installing Node.js 22 via Homebrew..."
|
||||
brew install node@22
|
||||
brew link --overwrite node@22
|
||||
fi
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
@@ -144,19 +172,18 @@ jobs:
|
||||
echo "Patched version to ${VERSION}"
|
||||
|
||||
- name: Install Rust stable
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: aarch64-apple-darwin,x86_64-apple-darwin
|
||||
|
||||
- name: Rust cache
|
||||
uses: swatinem/rust-cache@v2
|
||||
with:
|
||||
workspaces: "./app/src-tauri -> target"
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "22"
|
||||
run: |
|
||||
if command -v rustup >/dev/null 2>&1; then
|
||||
echo "Rust already installed: $(rustc --version)"
|
||||
rustup update stable
|
||||
rustup default stable
|
||||
else
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
|
||||
fi
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
rustup target add aarch64-apple-darwin x86_64-apple-darwin
|
||||
rustc --version
|
||||
cargo --version
|
||||
|
||||
- name: Install frontend dependencies
|
||||
working-directory: ./app
|
||||
@@ -164,11 +191,15 @@ jobs:
|
||||
|
||||
- name: Install Tauri CLI
|
||||
working-directory: ./app
|
||||
run: npx tauri --version || npm install @tauri-apps/cli
|
||||
run: |
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
npx tauri --version || npm install @tauri-apps/cli
|
||||
|
||||
- name: Build Tauri app (universal)
|
||||
working-directory: ./app
|
||||
run: npx tauri build --target universal-apple-darwin
|
||||
run: |
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
npx tauri build --target universal-apple-darwin
|
||||
|
||||
- name: Collect artifacts
|
||||
run: |
|
||||
|
||||
@@ -21,6 +21,9 @@ jobs:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
@@ -36,6 +39,7 @@ jobs:
|
||||
with:
|
||||
context: ./container
|
||||
file: ./container/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: ${{ gitea.event_name == 'push' }}
|
||||
tags: |
|
||||
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
|
||||
|
||||
53
BUILDING.md
53
BUILDING.md
@@ -1,6 +1,6 @@
|
||||
# Building Triple-C
|
||||
|
||||
Triple-C is a Tauri v2 desktop application with a React/TypeScript frontend and a Rust backend. This guide covers building the app from source on Linux and Windows.
|
||||
Triple-C is a Tauri v2 desktop application with a React/TypeScript frontend and a Rust backend. This guide covers building the app from source on Linux, macOS, and Windows.
|
||||
|
||||
## Prerequisites (All Platforms)
|
||||
|
||||
@@ -79,6 +79,57 @@ Build artifacts are located in `app/src-tauri/target/release/bundle/`:
|
||||
| Debian pkg | `deb/*.deb` |
|
||||
| RPM pkg | `rpm/*.rpm` |
|
||||
|
||||
## macOS
|
||||
|
||||
### 1. Install prerequisites
|
||||
|
||||
- **Xcode Command Line Tools** — required for the C/C++ toolchain and system headers:
|
||||
|
||||
```bash
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
No additional system libraries are needed — macOS includes WebKit natively.
|
||||
|
||||
### 2. Install Rust targets (universal binary)
|
||||
|
||||
To build a universal binary that runs on both Apple Silicon and Intel Macs:
|
||||
|
||||
```bash
|
||||
rustup target add aarch64-apple-darwin x86_64-apple-darwin
|
||||
```
|
||||
|
||||
### 3. Install frontend dependencies
|
||||
|
||||
```bash
|
||||
cd app
|
||||
npm ci
|
||||
```
|
||||
|
||||
### 4. Build
|
||||
|
||||
For a universal binary (recommended for distribution):
|
||||
|
||||
```bash
|
||||
npx tauri build --target universal-apple-darwin
|
||||
```
|
||||
|
||||
For the current architecture only (faster, for local development):
|
||||
|
||||
```bash
|
||||
npx tauri build
|
||||
```
|
||||
|
||||
Build artifacts are located in `app/src-tauri/target/universal-apple-darwin/release/bundle/` (or `target/release/bundle/` for single-arch builds):
|
||||
|
||||
| Format | Path |
|
||||
|--------|------|
|
||||
| DMG | `dmg/*.dmg` |
|
||||
| macOS App | `macos/*.app` |
|
||||
| macOS App (compressed) | `macos/*.app.tar.gz` |
|
||||
|
||||
> **Note:** The app is not signed or notarized. On first launch, macOS Gatekeeper may block it. Right-click the app and select "Open" to bypass, or remove the quarantine attribute: `xattr -cr /Applications/Triple-C.app`
|
||||
|
||||
## Windows
|
||||
|
||||
### 1. Install prerequisites
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
FROM ubuntu:24.04
|
||||
|
||||
# Multi-arch: builds for linux/amd64 and linux/arm64 (Apple Silicon)
|
||||
# Avoid interactive prompts during package install
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
||||
Reference in New Issue
Block a user