ci: Add multi-platform GitHub Action CI/CD pipelines #18

Merged
gronod merged 1 commits from development into main 2026-08-22 19:06:36 +01:00
4 changed files with 126 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
name: Build macOS Packages
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
jobs:
build-macos:
name: Build macOS (${{ matrix.platform.name }})
runs-on: ${{ matrix.platform.os }}
strategy:
matrix:
platform:
- name: Intel
os: macos-13
target: x86_64-apple-darwin
binary_dir: macos-x86_64
- name: Apple Silicon
os: macos-14
target: aarch64-apple-darwin
binary_dir: macos-aarch64
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: ${{ matrix.platform.target }}
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Check sidecar binaries
run: |
if [ ! -d "src-tauri/argyll/${{ matrix.platform.binary_dir }}" ]; then
echo "Warning: macOS ArgyllCMS binaries not found. Please ensure they are downloaded/committed to src-tauri/argyll/${{ matrix.platform.binary_dir }} before release."
fi
- name: Install Node dependencies
run: npm ci
- name: Build Tauri App
run: npm run tauri build
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: iccery-macos-${{ matrix.platform.name }}-dmg
path: src-tauri/target/release/bundle/dmg/*.dmg
- name: Upload App Bundle
uses: actions/upload-artifact@v4
with:
name: iccery-macos-${{ matrix.platform.name }}-app
path: src-tauri/target/release/bundle/macos/*.app
+57
View File
@@ -0,0 +1,57 @@
name: Build Windows Packages
on:
push:
branches:
- main
tags:
- 'v*'
pull_request:
jobs:
build-windows:
name: Build Windows
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
targets: x86_64-pc-windows-msvc
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Check sidecar binaries
run: |
if (!(Test-Path "src-tauri\argyll\windows-x86_64\argyll-instlist.exe")) {
Write-Host "Warning: Windows ArgyllCMS binaries not found. Please ensure they are downloaded/committed to src-tauri/argyll/windows-x86_64 before release."
}
- name: Install Node dependencies
run: npm ci
- name: Build Tauri App
run: npm run tauri build
- name: Upload MSI Installer
uses: actions/upload-artifact@v4
with:
name: iccery-windows-msi
path: src-tauri/target/release/bundle/msi/*.msi
- name: Upload NSIS Installer
uses: actions/upload-artifact@v4
with:
name: iccery-windows-exe
path: src-tauri/target/release/bundle/nsis/*.exe
+1
View File
@@ -46,6 +46,7 @@ pub async fn resolve_binary(app: AppHandle, binary_name: String) -> Result<Strin
("linux", "x86_64") => "linux-x86_64",
("windows", "x86_64") => "windows-x86_64",
("macos", "aarch64") => "macos-aarch64",
("macos", "x86_64") => "macos-x86_64",
_ => "linux-x86_64",
};