mirror of
https://github.com/AeThex-Corporation/AeThex-OS.git
synced 2026-04-18 14:27:20 +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