feat(ci): improve Tauri build pipeline and artifact collection

The CI workflow now installs the required Rust toolchain and uv on
Ubuntu, and passes a no-strip flag into the Tauri build to control
binary stripping behavior per platform. The CI helper script was
updated to collect only expected bundle and signature files, reducing
noise and improving upload correctness. Versioning was aligned across
the Node package and Tauri config for the new release.

- Add platform-specific no_strip handling in the build workflow
- Install Rust toolchain/uv for Ubuntu builds
- Filter collected artifacts by expected extensions and signatures
This commit is contained in:
Christoph Brandau
2026-07-06 08:23:49 +02:00
5 changed files with 37 additions and 16 deletions
+11
View File
@@ -42,9 +42,11 @@ jobs:
- platform: "windows-latest" - platform: "windows-latest"
bundles: "nsis" bundles: "nsis"
updater_platform: "windows-x86_64" updater_platform: "windows-x86_64"
no_strip: ""
- platform: "ubuntu-22.04" - platform: "ubuntu-22.04"
bundles: "appimage" bundles: "appimage"
updater_platform: "linux-x86_64" updater_platform: "linux-x86_64"
no_strip: "1"
runs-on: ${{ matrix.platform }} runs-on: ${{ matrix.platform }}
@@ -65,6 +67,14 @@ jobs:
with: with:
node-version: lts/* node-version: lts/*
- name: Install uv
if: matrix.platform == 'ubuntu-22.04'
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b
- name: install rust toolchain
if: matrix.platform == 'ubuntu-22.04'
uses: dtolnay/rust-toolchain@stable
- name: install frontend dependencies - name: install frontend dependencies
run: npm ci run: npm ci
@@ -129,6 +139,7 @@ jobs:
env: env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }} TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD}} TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD}}
NO_STRIP: ${{ matrix.no_strip }}
run: npm run tauri -- build --bundles ${{ matrix.bundles }} run: npm run tauri -- build --bundles ${{ matrix.bundles }}
# ---------------------- # ----------------------
# Upload to MinIO (via mc) and create latest.json # Upload to MinIO (via mc) and create latest.json
+14 -9
View File
@@ -115,16 +115,21 @@ def _ensure_bucket(client: Minio, bucket_name: str) -> None:
def _collect_artifacts() -> List[Path]: def _collect_artifacts() -> List[Path]:
artifacts: List[Path] = [] artifacts: List[Path] = []
for directory in ( bundle_dirs = {
ARTIFACT_ROOT / "msi", ARTIFACT_ROOT / "msi": (".msi", ".sig"),
ARTIFACT_ROOT / "nsis", ARTIFACT_ROOT / "nsis": (".exe", ".sig"),
ARTIFACT_ROOT / "appimage", ARTIFACT_ROOT / "appimage": (".appimage", ".sig"),
ARTIFACT_ROOT / "deb", ARTIFACT_ROOT / "deb": (".deb", ".sig"),
ARTIFACT_ROOT / "rpm", ARTIFACT_ROOT / "rpm": (".rpm", ".sig"),
ARTIFACT_ROOT / "app", ARTIFACT_ROOT / "app": (".dmg", ".zip", ".sig"),
): }
for directory, suffixes in bundle_dirs.items():
if directory.exists(): if directory.exists():
artifacts.extend(p for p in directory.rglob("*") if p.is_file()) artifacts.extend(
p
for p in directory.iterdir()
if p.is_file() and p.suffix.lower() in suffixes
)
return artifacts return artifacts
+2 -2
View File
@@ -1,12 +1,12 @@
{ {
"name": "git-lite", "name": "git-lite",
"version": "2026.7.11", "version": "0.100.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "git-lite", "name": "git-lite",
"version": "2026.7.11", "version": "0.100.0",
"dependencies": { "dependencies": {
"@lucide/svelte": "^1.21.0", "@lucide/svelte": "^1.21.0",
"@tailwindcss/vite": "^4.3.1", "@tailwindcss/vite": "^4.3.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "git-lite", "name": "git-lite",
"version": "2026.7.12", "version": "0.100.0",
"private": true, "private": true,
"type": "module", "type": "module",
"scripts": { "scripts": {
+8 -3
View File
@@ -1,7 +1,7 @@
{ {
"$schema": "https://schema.tauri.app/config/2", "$schema": "https://schema.tauri.app/config/2",
"productName": "GitLite", "productName": "GitLite",
"version": "2026.7.12", "version": "0.100.0",
"identifier": "com.git-lite", "identifier": "com.git-lite",
"build": { "build": {
"beforeDevCommand": "npm run dev", "beforeDevCommand": "npm run dev",
@@ -28,8 +28,13 @@
}, },
"bundle": { "bundle": {
"active": true, "active": true,
"targets": ["nsis"], "targets": [
"icon": ["icons/icon.png", "icons/icon.ico"], "nsis"
],
"icon": [
"icons/icon.png",
"icons/icon.ico"
],
"createUpdaterArtifacts": true, "createUpdaterArtifacts": true,
"windows": { "windows": {
"nsis": { "nsis": {