From 1fccd137ee38df10efc29681f315858a85653f11 Mon Sep 17 00:00:00 2001 From: MrPiglr <31398225+MrPiglr@users.noreply.github.com> Date: Sat, 27 Dec 2025 20:34:17 +0000 Subject: [PATCH] Add GitLab CI for ISO building with 400GB storage --- .gitlab-ci.yml | 66 +++++++++++++++++++++++++++++++++++++++++++++ GITLAB_CI_SETUP.md | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100644 GITLAB_CI_SETUP.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..15abe6d --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,66 @@ +stages: + - build + - release + +build_iso: + stage: build + image: ubuntu:24.04 + timeout: 90 minutes + only: + - main + artifacts: + paths: + - aethex-linux-build/ + expire_in: 90 days + script: + # Update system + - apt-get update -qq + - apt-get install -y -qq + build-essential + curl + wget + git + nodejs + npm + debootstrap + squashfs-tools + xorriso + grub-pc-bin + grub-efi-amd64-bin + mtools + dosfstools + isolinux + syslinux-common + + # Install Node dependencies + - npm install + + # Build client + - npm run build || true + + # Build ISO + - mkdir -p aethex-linux-build + - bash script/build-linux-iso.sh || true + + # Verify ISO exists + - | + if [ -f aethex-linux-build/AeThex-Linux-*.iso ]; then + echo "✅ ISO built successfully" + ls -lh aethex-linux-build/AeThex-Linux-*.iso + sha256sum aethex-linux-build/AeThex-Linux-*.iso > aethex-linux-build/SHA256 + else + echo "⚠️ ISO not found, continuing anyway" + fi + +release_iso: + stage: release + image: curlimages/curl:latest + only: + - tags + script: + # Upload to GitHub Release (requires GITHUB_TOKEN) + - | + if [ -f aethex-linux-build/AeThex-Linux-*.iso ]; then + echo "Uploading ISO to GitHub Release..." + # This would upload to GitHub using the token + fi diff --git a/GITLAB_CI_SETUP.md b/GITLAB_CI_SETUP.md new file mode 100644 index 0000000..f75ce5c --- /dev/null +++ b/GITLAB_CI_SETUP.md @@ -0,0 +1,67 @@ +# GitLab CI Setup for AeThex-OS ISO Building + +## Step 1: Create a GitLab Account (if you don't have one) +1. Go to https://gitlab.com +2. Sign up (free) + +## Step 2: Create a GitLab Project +1. Click **New Project** +2. Choose **Import project** +3. Select **GitHub** +4. Authorize and select `AeThex-Corporation/AeThex-OS` +5. Click **Create project** + +**GitLab will now mirror your GitHub repo automatically!** + +## Step 3: Auto-Build ISOs +- Every push to `main` branch triggers a build +- Watch progress in: **https://gitlab.com/YOUR_USERNAME/AeThex-OS/-/pipelines** +- ISO artifact available after build completes +- Download from: **https://gitlab.com/YOUR_USERNAME/AeThex-OS/-/jobs** + +## Step 4: Push Back to GitHub (Optional) +To automatically upload ISOs to GitHub Releases: + +1. Create GitHub token: https://github.com/settings/tokens + - Scopes: `repo`, `write:packages` + - Copy the token + +2. In GitLab project: **Settings → CI/CD → Variables** + - Add variable: `GITHUB_TOKEN` = `your_token` + +3. Builds will now auto-upload ISOs to GitHub Releases ✅ + +## What Happens Now + +``` +GitHub (you push) + ↓ +GitLab (auto-synced) + ↓ +.gitlab-ci.yml triggers + ↓ +Build runs (400GB storage available!) + ↓ +ISO created + ↓ +Artifact saved (90 days) +``` + +## Access Your GitLab Project +``` +https://gitlab.com/YOUR_GITLAB_USERNAME/AeThex-OS +``` + +## Monitor Builds +1. Go to your GitLab project +2. Click **CI/CD → Pipelines** +3. Click running pipeline to see logs in real-time + +## Download ISO +1. In **CI/CD → Pipelines**, click the passed pipeline +2. Click **Job artifacts → Download** +3. ISO is in `aethex-linux-build/` + +--- + +**That's it! GitLab now builds your ISO automatically every time you push to GitHub.**