mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-26 17:37:19 +00:00
Add GitLab CI for ISO building with 400GB storage
This commit is contained in:
parent
e4add3cbb0
commit
1fccd137ee
2 changed files with 133 additions and 0 deletions
66
.gitlab-ci.yml
Normal file
66
.gitlab-ci.yml
Normal file
|
|
@ -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
|
||||||
67
GITLAB_CI_SETUP.md
Normal file
67
GITLAB_CI_SETUP.md
Normal file
|
|
@ -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.**
|
||||||
Loading…
Reference in a new issue