Skip to content

Design/premium UI 1.10.0 (#129) #24

Design/premium UI 1.10.0 (#129)

Design/premium UI 1.10.0 (#129) #24

Workflow file for this run

name: Loopi Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
build-windows:
name: Build Windows packages
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: 22
- name: Enable Corepack and install pnpm
run: corepack enable
- name: Install dependencies
run: pnpm install --frozen-lockfile --prefer-offline
- name: Build Windows packages
run: pnpm run make
- name: Upload Windows artifacts
uses: actions/upload-artifact@v5
with:
name: dist-windows
path: |
out/**
dist/**
build-linux:
name: Build Linux packages
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: 22
- name: Enable Corepack and install pnpm
run: corepack enable
- name: Install dependencies
run: pnpm install --frozen-lockfile --prefer-offline
- name: Build Linux packages
run: pnpm run make
- name: Upload Linux artifacts
uses: actions/upload-artifact@v5
with:
name: dist-linux
path: |
out/**
dist/**
create_release:
name: Create GitHub Release with all artifacts
runs-on: ubuntu-latest
needs: [build-windows, build-linux]
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Download Windows artifacts
uses: actions/download-artifact@v5
with:
name: dist-windows
path: artifacts/windows
- name: Download Linux artifacts
uses: actions/download-artifact@v5
with:
name: dist-linux
path: artifacts/linux
- name: List and calculate file sizes
run: |
echo "=== Windows Artifacts ==="
find artifacts/windows -type f -name "*.exe" | sort
echo "=== Linux Artifacts ==="
find artifacts/linux -type f -name "*.deb" | sort
- name: Generate Release Notes with Dynamic File Sizes
run: |
# Function to format file size with decimals
format_size() {
local size=$1
if (( size < 1024 )); then
echo "${size} B"
elif (( size < 1048576 )); then
printf "%.1f KB\n" "$(echo "scale=1; $size / 1024" | bc)"
else
printf "%.1f MB\n" "$(echo "scale=1; $size / 1048576" | bc)"
fi
}
# Get Windows exe size (Setup.exe is the actual installer)
WIN_EXE=$(find artifacts/windows -type f -name "*Setup.exe" -printf '%s\n' | sort -rn | head -1)
if [ -z "$WIN_EXE" ]; then
WIN_SIZE="Unknown"
else
WIN_SIZE=$(format_size $WIN_EXE)
fi
# Get Linux deb size (latest/largest deb file)
LINUX_DEB=$(find artifacts/linux -type f -name "*.deb" -printf '%s\n' | sort -rn | head -1)
if [ -z "$LINUX_DEB" ]; then
LINUX_SIZE="Unknown"
else
LINUX_SIZE=$(format_size $LINUX_DEB)
fi
cat > release_notes.md << EOF
# Loopi ${{ github.ref_name }}
Download the installer for your operating system below.
## 🪟 Windows (Windows 10 or later, 64-bit)
- **Installer (.exe)** - ${WIN_SIZE} - Recommended for most users
## 🐧 Linux (Ubuntu 20.04+, Debian 11+, or equivalent)
- **Debian Package (.deb)** - ${LINUX_SIZE} - For Ubuntu, Debian, and derivatives
## 📋 System Requirements
### Windows
- Windows 10 or later (64-bit)
- 4 GB RAM minimum
- 500 MB free disk space
### Linux
- Ubuntu 20.04+, Debian 11+, or equivalent
- 4 GB RAM minimum
- 500 MB free disk space
## 🚀 Getting Started
1. Download the installer for your operating system
2. Run the installer and follow the setup wizard
3. Launch Loopi and create your first automation
## 📖 Documentation
- [README](https://github.com/Dyan-Dev/loopi/tree/feature/docs)
- [Getting Started Guide](https://github.com/Dyan-Dev/loopi/blob/feature/docs/GETTING_STARTED.md)
- [Variable System](https://github.com/Dyan-Dev/loopi/blob/feature/docs/VARIABLES.md)
- [Architecture](https://github.com/Dyan-Dev/loopi/blob/feature/docs/ARCHITECTURE.md)
## 🐛 Bug Reports
Found a bug? Please [open an issue](https://github.com/Dyan-Dev/loopi/issues) with:
- Your operating system and version
- Steps to reproduce
- Expected vs actual behavior
- Screenshots/logs if applicable
## 💬 Support
For questions or support, please:
- Check [existing issues](https://github.com/Dyan-Dev/loopi/issues)
- Email: support@dyan.live
---
Thank you for using Loopi! 🎉
EOF
echo "Release notes generated"
- name: Create GitHub Release and upload assets
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ github.ref_name }}
name: Loopi ${{ github.ref_name }}
body_path: release_notes.md
draft: false
files: |
artifacts/windows/out/**/*.exe
artifacts/linux/out/**/*.deb
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}