AeThex-OS/.github/workflows/release-desktop.yml
MrPiglr b8d5062f3e Add desktop app downloads page and release workflow
- Add GitHub Actions workflow for building desktop apps (Windows/macOS/Linux)
- Create /downloads page with GitHub releases integration
- Update README with download links
- Automated release creation on desktop-v* tags

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-29 23:32:02 -07:00

143 lines
5.2 KiB
YAML

name: Release Desktop Apps
on:
push:
tags:
- 'desktop-v*' # Trigger on tags like desktop-v1.0.0
workflow_dispatch:
inputs:
version:
description: 'Version number (e.g., 1.0.0)'
required: true
jobs:
create-release:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
version: ${{ steps.get_version.outputs.version }}
steps:
- name: Get version
id: get_version
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
else
echo "version=${GITHUB_REF#refs/tags/desktop-v}" >> $GITHUB_OUTPUT
fi
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: desktop-v${{ steps.get_version.outputs.version }}
release_name: AeThex OS Desktop v${{ steps.get_version.outputs.version }}
draft: false
prerelease: false
body: |
# AeThex OS Desktop v${{ steps.get_version.outputs.version }}
## Downloads
- **Windows**: Download the `.msi` installer
- **macOS**: Download the `.dmg` file
- **Linux**: Download the `.AppImage`, `.deb`, or `.rpm` file
## What's New
- Desktop application release
- Cross-platform support (Windows, macOS, Linux)
- Native performance with Tauri
## Installation
- **Windows**: Run the MSI installer
- **macOS**: Open the DMG and drag to Applications
- **Linux**: Make AppImage executable with `chmod +x` and run, or install DEB/RPM
build-desktop:
needs: create-release
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest'
args: '--target universal-apple-darwin'
- platform: 'ubuntu-22.04'
args: ''
- platform: 'windows-latest'
args: ''
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: Install dependencies (Ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libwebkit2gtk-4.1-dev \
libappindicator3-dev librsvg2-dev patchelf
- name: Install frontend dependencies
run: npm install
- name: Install Tauri dependencies
working-directory: shell/aethex-shell
run: npm install
- name: Build Tauri app
working-directory: shell/aethex-shell
run: npm run tauri build -- ${{ matrix.args }}
- name: Upload Windows MSI
if: matrix.platform == 'windows-latest'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./shell/aethex-shell/src-tauri/target/release/bundle/msi/aethex-os_${{ needs.create-release.outputs.version }}_x64_en-US.msi
asset_name: AeThex-OS-${{ needs.create-release.outputs.version }}-Windows-x64.msi
asset_content_type: application/x-msi
- name: Upload macOS DMG
if: matrix.platform == 'macos-latest'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./shell/aethex-shell/src-tauri/target/universal-apple-darwin/release/bundle/dmg/AeThex OS_${{ needs.create-release.outputs.version }}_universal.dmg
asset_name: AeThex-OS-${{ needs.create-release.outputs.version }}-macOS-universal.dmg
asset_content_type: application/x-apple-diskimage
- name: Upload Linux AppImage
if: matrix.platform == 'ubuntu-22.04'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./shell/aethex-shell/src-tauri/target/release/bundle/appimage/aethex-os_${{ needs.create-release.outputs.version }}_amd64.AppImage
asset_name: AeThex-OS-${{ needs.create-release.outputs.version }}-Linux-x86_64.AppImage
asset_content_type: application/x-executable
- name: Upload Linux DEB
if: matrix.platform == 'ubuntu-22.04'
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: ./shell/aethex-shell/src-tauri/target/release/bundle/deb/aethex-os_${{ needs.create-release.outputs.version }}_amd64.deb
asset_name: AeThex-OS-${{ needs.create-release.outputs.version }}-Linux-amd64.deb
asset_content_type: application/vnd.debian.binary-package