name: Desktop Artifacts
on:
workflow_dispatch:
jobs:
verify-config:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install jq
run: sudo apt-get update && sudo apt-get install -y jq
- name: Verify desktop configuration
run: bash desktop/scripts/verify-desktop-config.sh
build-macos:
runs-on: macos-latest
needs: verify-config
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install Tauri CLI
run: cargo install tauri-cli --locked
- name: Build macOS desktop bundle
run: ESDIAG_GENERATE_NOTICE=0 cargo tauri build --features desktop --bundles dmg
- name: Stage macOS artifact
run: |
mkdir -p target/artifacts/macos
cp target/release/bundle/dmg/*.dmg target/artifacts/macos/
- name: Upload macOS artifact
uses: actions/upload-artifact@v4
with:
name: macos-desktop
path: target/artifacts/macos/*
build-windows:
runs-on: windows-latest
needs: verify-config
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Normalize Cargo version for MSI
shell: bash
run: bash desktop/scripts/normalize-cargo-version-for-msi.sh Cargo.toml
- name: Install Tauri CLI
run: cargo install tauri-cli --locked
- name: Build Windows desktop bundle
run: $env:ESDIAG_GENERATE_NOTICE = "0"; cargo tauri build --features desktop --bundles msi
- name: Stage Windows artifact
shell: pwsh
run: |
New-Item -ItemType Directory -Path target/artifacts/windows -Force | Out-Null
Copy-Item target/release/bundle/msi/*.msi target/artifacts/windows/
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: windows-desktop
path: target/artifacts/windows/*
build-flatpak:
runs-on: ubuntu-latest
needs: verify-config
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
- name: Install Flatpak tooling
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder jq
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.gnome.Platform//49 org.gnome.Sdk//49 org.freedesktop.Sdk.Extension.rust-stable//25.08
- name: Build local Flatpak artifact
run: bash desktop/scripts/build-flatpak-local.sh
- name: Stage Flatpak artifact
run: |
mkdir -p target/artifacts/flatpak
cp target/flatpak/com.elastic.esdiag-0.15.0.flatpak target/artifacts/flatpak/
- name: Upload Flatpak artifact
uses: actions/upload-artifact@v4
with:
name: flatpak-desktop
path: target/artifacts/flatpak/*
validate-desktop-artifacts:
runs-on: ubuntu-latest
needs:
- build-macos
- build-windows
- build-flatpak
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download macOS artifact
uses: actions/download-artifact@v4
with:
name: macos-desktop
path: target/artifacts/macos
- name: Download Windows artifact
uses: actions/download-artifact@v4
with:
name: windows-desktop
path: target/artifacts/windows
- name: Download Flatpak artifact
uses: actions/download-artifact@v4
with:
name: flatpak-desktop
path: target/artifacts/flatpak
- name: Validate required desktop artifacts
run: bash desktop/scripts/validate-desktop-artifacts.sh target/artifacts