Files
clide/.gitea/workflows/release.yml
T
Jeroen SchweitzerandClaude Opus 4.5 aff03a2e9b feat: add multi-platform packaging and auto-update infrastructure
- Add PyInstaller configuration (clide.spec) for cross-platform builds
- Add build scripts for macOS (DMG), Linux (AppImage), and Windows (Inno Setup)
- Add Gitea Actions CI/CD workflow for automated releases
- Add auto-update service with Gitea API integration
- Add 'clide update' CLI command for checking and installing updates

Packaging outputs:
- macOS: Signed/notarized .app bundle in DMG
- Linux: Portable AppImage (glibc 2.17+)
- Windows: Inno Setup installer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 22:51:36 +01:00

127 lines
3.3 KiB
YAML

# Gitea Actions workflow for building and releasing Clide
# Triggers on version tags (v*)
# Builds Linux AppImage and Windows installer automatically
# macOS must be built locally (no macOS runners)
name: Build and Release
on:
push:
tags:
- 'v*'
env:
PYTHON_VERSION: '3.12'
jobs:
# Build Linux AppImage
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[build]"
- name: Install FUSE (for appimagetool)
run: |
sudo apt-get update
sudo apt-get install -y fuse libfuse2
- name: Build AppImage
run: |
chmod +x scripts/build-linux.sh
./scripts/build-linux.sh ${{ github.ref_name }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: linux-appimage
path: dist/*.AppImage
retention-days: 5
# Build Windows installer
build-windows:
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[build]"
- name: Install Inno Setup
run: choco install innosetup -y
- name: Build installer
run: .\scripts\build-windows.ps1 -Version ${{ github.ref_name }}
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: windows-installer
path: dist/*-setup.exe
retention-days: 5
# Create GitHub/Gitea release with all artifacts
create-release:
needs: [build-linux, build-windows]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download Linux artifact
uses: actions/download-artifact@v4
with:
name: linux-appimage
path: artifacts/linux
- name: Download Windows artifact
uses: actions/download-artifact@v4
with:
name: windows-installer
path: artifacts/windows
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
artifacts/linux/*.AppImage
artifacts/windows/*-setup.exe
draft: true
generate_release_notes: true
body: |
## Installation
### Linux (AppImage)
```bash
chmod +x Clide-*-linux-*.AppImage
./Clide-*-linux-*.AppImage
```
### Windows
Download and run the installer. For best experience, use Windows Terminal.
### macOS
macOS builds are created manually. See releases for DMG when available.
## Requirements
- **Linux**: glibc 2.17+ (Ubuntu 18.04+, Fedora 25+, etc.)
- **Windows**: Windows 10+ with Windows Terminal recommended
- **macOS**: macOS 10.13+ (when available)