Skip to content

Release Headless

Release Headless #29

name: "Release Headless"
on:
workflow_dispatch:
jobs:
build-headless:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "ubuntu-22.04"
args: "--target x86_64-unknown-linux-gnu"
arch: "x86_64"
type: "x86_64"
assetPattern: "[name]_[ver]_[arch][ext]"
- platform: "ubuntu-22.04-arm"
args: "--target aarch64-unknown-linux-gnu"
arch: "aarch64"
type: "aarch64"
assetPattern: "[name]_[ver]_[arch][ext]"
- platform: "windows-latest"
args: "--target x86_64-pc-windows-msvc"
arch: "x86_64"
type: "x86_64"
assetPattern: "[name]_[ver]_[arch][ext]"
- platform: "windows-latest"
args: "--target aarch64-pc-windows-msvc"
arch: "aarch64"
type: "aarch64"
assetPattern: "[name]_[ver]_[arch][ext]"
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v5
- name: Install dependencies (ubuntu only)
if: startsWith(matrix.platform, 'ubuntu')
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf xdg-utils xvfb dbus-x11
- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: lts/*
cache: "npm"
- name: Install Rust stable (windows only)
uses: dtolnay/rust-toolchain@stable
if: matrix.platform == 'windows-latest'
with:
targets: ${{ matrix.type == 'aarch64' && 'aarch64-pc-windows-msvc' || 'x86_64-pc-windows-msvc' }}
- name: Install Rust stable (linux only)
uses: dtolnay/rust-toolchain@stable
if: startsWith(matrix.platform, 'ubuntu')
with:
targets: ${{ matrix.type == 'aarch64' && 'aarch64-unknown-linux-gnu' || 'x86_64-unknown-linux-gnu' }}
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
key: headless-${{ runner.os }}-${{ matrix.arch }}
- name: Install frontend dependencies
run: npm install
- name: Remove Tauri capabilities metadata
shell: bash
run: rm -rf src-tauri/capabilities || true
- name: Build and Release Headless
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 }}
with:
tagName: headless-v__VERSION__
releaseName: "RClone Manager Headless v__VERSION__"
releaseBody: "RClone Manager Headless v__VERSION__"
releaseDraft: true
prerelease: false
args: >-
--config src-tauri/tauri.conf.headless.json
--features web-server,tray
${{ matrix.args }}
-- --no-default-features