CI: Add ISO workflow and stub build script

This commit is contained in:
MrPiglr 2025-12-27 21:28:11 +00:00
parent 1fccd137ee
commit 61d478abc0
2 changed files with 112 additions and 12 deletions

View file

@ -1,24 +1,100 @@
name: Build AeThex-OS
name: Build AeThex Linux ISO
on:
push:
branches:
- main
workflow_dispatch:
inputs:
release:
description: "Create a GitHub Release with ISO artifact"
type: boolean
default: false
jobs:
build:
build_client:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- run: npm install
- run: npm run build
- run: echo "✅ Build successful"
- name: Install dependencies
run: npm install
- name: Build client
run: npm run build
- name: Client build complete
run: echo "✅ Client build successful"
build_iso:
needs: build_client
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install ISO build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
debootstrap \
squashfs-tools \
xorriso \
grub-pc-bin \
grub-efi-amd64-bin \
isolinux \
syslinux-common \
curl
- name: Build AeThex Linux ISO (if script exists)
run: |
set -e
if [ -f script/build-linux-iso.sh ]; then
bash script/build-linux-iso.sh
else
echo "⚠️ script/build-linux-iso.sh not found; creating placeholder artifact"
mkdir -p aethex-linux-build
echo "AeThex Linux ISO build script is not yet implemented." > aethex-linux-build/README.txt
fi
- name: Verify ISO artifact
run: |
set -e
if ls aethex-linux-build/AeThex-Linux-*.iso 1> /dev/null 2>&1; then
echo "✅ ISO built successfully"
ls -lh aethex-linux-build/AeThex-Linux-*.iso
sha256sum aethex-linux-build/AeThex-Linux-*.iso > aethex-linux-build/SHA256
cat aethex-linux-build/SHA256
else
echo " No ISO found; uploading placeholder artifacts (if any)"
ls -lah aethex-linux-build || true
fi
- name: Upload ISO artifacts
uses: actions/upload-artifact@v4
with:
name: AeThex-Linux-ISO
path: |
aethex-linux-build/**
if-no-files-found: warn
retention-days: 90
- name: Create GitHub Release (optional)
if: ${{ github.event.inputs.release == 'true' }}
uses: softprops/action-gh-release@v1
with:
tag_name: iso-${{ github.run_number }}
name: AeThex Linux ISO build #${{ github.run_number }}
draft: false
prerelease: false
files: |
aethex-linux-build/AeThex-Linux-*.iso
aethex-linux-build/SHA256
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

24
script/build-linux-iso.sh Normal file
View file

@ -0,0 +1,24 @@
#!/usr/bin/env bash
set -euo pipefail
# AeThex Linux ISO build script (placeholder)
# This script creates the expected artifact directory so CI can succeed.
# Replace with a real implementation when ready.
echo "Starting AeThex Linux ISO build (placeholder)"
# Create artifact directory
mkdir -p aethex-linux-build
# Placeholder content
cat > aethex-linux-build/README.txt << 'EOF'
AeThex Linux ISO build script is not yet implemented.
This is a placeholder artifact to validate CI wiring.
When implemented, this folder should contain:
- AeThex-Linux-<version>.iso
- SHA256 (checksum file)
EOF
# Exit successfully
echo "Placeholder ISO build complete."