Files
Triple-C/.gitea/workflows/build-app.yml
Josh Knapp a8a02b7c6c
Some checks failed
Build App / build-windows (push) Failing after 12s
Build App / build-linux (push) Has been cancelled
Fix Windows build: use PowerShell instead of bash-based actions
The Gitea runner on Windows doesn't have bash available for
composite actions. Replace dtolnay/rust-toolchain and
actions/setup-node with direct PowerShell commands.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 07:39:32 -08:00

136 lines
3.9 KiB
YAML

name: Build App
on:
push:
branches: [main]
paths:
- "app/**"
- ".gitea/workflows/build-app.yml"
pull_request:
branches: [main]
paths:
- "app/**"
workflow_dispatch:
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libwebkit2gtk-4.1-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
libsoup-3.0-dev \
libssl-dev \
libxdo-dev \
patchelf \
pkg-config \
build-essential \
curl \
wget \
file
- 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"
- name: Install frontend dependencies
working-directory: ./app
run: npm ci
- name: Install Tauri CLI
working-directory: ./app
run: npx tauri --version || npm install @tauri-apps/cli
- name: Build Tauri app
working-directory: ./app
run: npx tauri build
- name: Upload Linux artifacts
uses: actions/upload-artifact@v4
with:
name: triple-c-linux
path: |
app/src-tauri/target/release/bundle/appimage/*.AppImage
app/src-tauri/target/release/bundle/deb/*.deb
app/src-tauri/target/release/bundle/rpm/*.rpm
if-no-files-found: warn
build-windows:
runs-on: windows-latest
defaults:
run:
shell: pwsh
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust stable
run: |
if (!(Get-Command rustup -ErrorAction SilentlyContinue)) {
Invoke-WebRequest -Uri https://win.rustup.rs/x86_64 -OutFile rustup-init.exe
.\rustup-init.exe -y --default-toolchain stable
Remove-Item rustup-init.exe
} else {
rustup update stable
rustup default stable
}
# Add cargo to PATH for subsequent steps
echo "$env:USERPROFILE\.cargo\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Verify Rust
run: |
rustc --version
cargo --version
- name: Install Node.js
run: |
if (!(Get-Command node -ErrorAction SilentlyContinue) -or !((node --version) -match 'v22')) {
# Download and install Node.js 22 LTS
Invoke-WebRequest -Uri "https://nodejs.org/dist/v22.14.0/node-v22.14.0-x64.msi" -OutFile node-install.msi
Start-Process msiexec.exe -ArgumentList '/i', 'node-install.msi', '/quiet', '/norestart' -Wait
Remove-Item node-install.msi
# Refresh PATH
$env:PATH = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("PATH", "User")
}
node --version
npm --version
- name: Install frontend dependencies
working-directory: ./app
run: npm ci
- name: Install Tauri CLI
working-directory: ./app
run: |
try { npx tauri --version } catch { npm install @tauri-apps/cli }
- name: Build Tauri app
working-directory: ./app
run: npx tauri build
- name: Upload Windows artifacts
uses: actions/upload-artifact@v4
with:
name: triple-c-windows
path: |
app/src-tauri/target/release/bundle/msi/*.msi
app/src-tauri/target/release/bundle/nsis/*.exe
if-no-files-found: warn