mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-25 17:37:19 +00:00
CI: Add ISO workflow and stub build script
This commit is contained in:
parent
1fccd137ee
commit
61d478abc0
2 changed files with 112 additions and 12 deletions
92
.github/workflows/build-iso.yml
vendored
92
.github/workflows/build-iso.yml
vendored
|
|
@ -1,24 +1,100 @@
|
||||||
name: Build AeThex-OS
|
name: Build AeThex Linux ISO
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
release:
|
||||||
|
description: "Create a GitHub Release with ISO artifact"
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build_client:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: '22'
|
node-version: '22'
|
||||||
|
|
||||||
- run: npm install
|
- name: Install dependencies
|
||||||
|
run: npm install
|
||||||
|
|
||||||
- run: npm run build
|
- name: Build client
|
||||||
|
run: npm run build
|
||||||
|
|
||||||
- run: echo "✅ Build successful"
|
- 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
24
script/build-linux-iso.sh
Normal 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."
|
||||||
Loading…
Reference in a new issue