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:
@@ -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
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Generated
+2
-2
@@ -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
@@ -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": {
|
||||||
|
|||||||
@@ -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": {
|
||||||
@@ -40,7 +45,7 @@
|
|||||||
"plugins": {
|
"plugins": {
|
||||||
"updater": {
|
"updater": {
|
||||||
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDdDNEJGRTZERTREOTc5QjkKUldTNWVkbmtiZjVMZk02YzdpenVLOVltREJpRkFrc2F4dUwzaTV5M3pacFRVR0tmd25xSGtjK1MK",
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDdDNEJGRTZERTREOTc5QjkKUldTNWVkbmtiZjVMZk02YzdpenVLOVltREJpRkFrc2F4dUwzaTV5M3pacFRVR0tmd25xSGtjK1MK",
|
||||||
"endpoints" : [
|
"endpoints": [
|
||||||
"https://cdn.cbsk-tech.de/gitlite/latest.json"
|
"https://cdn.cbsk-tech.de/gitlite/latest.json"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user