AeThex-OS/.github/workflows/build-iso.yml

110 lines
3 KiB
YAML

name: Build AeThex Linux ISO
on:
workflow_dispatch:
inputs:
build_type:
description: 'Build type'
required: true
default: 'iso'
type: choice
options:
- iso
- test
jobs:
build-iso:
runs-on: ubuntu-latest
timeout-minutes: 90
permissions:
contents: write
packages: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install system dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq \
debootstrap \
squashfs-tools \
xorriso \
grub-pc-bin \
grub-efi-amd64-bin \
mtools \
dosfstools \
isolinux \
syslinux-common \
libwebkit2gtk-4.1-dev \
build-essential \
curl \
wget \
file \
libxdo-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev
- name: Install Node dependencies
run: npm ci --prefer-offline
- name: Build client
run: npm run build
continue-on-error: true
- name: Build Tauri app
run: npm run build:tauri
continue-on-error: true
- name: Build AeThex Linux ISO
run: sudo bash script/build-linux-iso.sh
continue-on-error: true
- name: Check for ISO
id: check-iso
run: |
if [ -f ~/aethex-linux-build/AeThex-Linux-*.iso ]; then
echo "iso_exists=true" >> $GITHUB_OUTPUT
ls -lh ~/aethex-linux-build/AeThex-Linux-*.iso
else
echo "iso_exists=false" >> $GITHUB_OUTPUT
echo "ISO file not found - build may have failed"
ls -lh ~/aethex-linux-build/ 2>/dev/null || echo "Build directory not found"
fi
- name: Upload ISO as artifact
if: steps.check-iso.outputs.iso_exists == 'true'
uses: actions/upload-artifact@v4
with:
name: AeThex-Linux-ISO
path: ~/aethex-linux-build/AeThex-Linux-*.iso*
retention-days: 90
- name: Report Status
if: always()
run: |
echo "## Build Status" >> $GITHUB_STEP_SUMMARY
if [ "${{ steps.check-iso.outputs.iso_exists }}" == "true" ]; then
echo "✅ ISO build successful - check artifacts" >> $GITHUB_STEP_SUMMARY
else
echo "⚠️ ISO build incomplete - check logs above" >> $GITHUB_STEP_SUMMARY
fi
- name: Debug Info
if: always()
run: |
echo "Build completed at: $(date)"
echo "Checking build directory..."
ls -la ~/aethex-linux-build/ 2>/dev/null || echo "Build directory does not exist yet"