Skip to content

fix: GitHub Actions CI + build script for x86/ARM64 #83

fix: GitHub Actions CI + build script for x86/ARM64

fix: GitHub Actions CI + build script for x86/ARM64 #83

Workflow file for this run

name: Build ISO & Release
on:
push:
branches:
- main
tags:
- 'v*'
workflow_dispatch:
jobs:
# ═══════════════════════════════════════════════════════════════
# x86_64 build — runs natively on standard Ubuntu runner
# ═══════════════════════════════════════════════════════════════
build-x86:
runs-on: ubuntu-latest
permissions:
contents: write
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Free disk space
run: |
# GitHub runners have ~14GB free. ISO build needs ~12GB.
# Remove unnecessary pre-installed software to free space.
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \
/usr/local/share/boost /usr/share/swift /opt/hostedtoolcache 2>/dev/null || true
sudo apt-get autoremove -y 2>/dev/null || true
sudo apt-get clean
df -h /
- name: Install build dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y \
debootstrap xorriso mtools squashfs-tools \
grub-efi-amd64-bin grub-pc-bin \
dosfstools xz-utils
- name: Build ISO (x86_64)
run: |
chmod +x ./scripts/build-iso.sh
sudo bash ./scripts/build-iso.sh --arch=x86_64 --clean
- name: Compress ISO
run: |
ls -lh tensoragent-os-x86_64.iso
xz -T0 -6 tensoragent-os-x86_64.iso
ls -lh tensoragent-os-x86_64.iso.xz
- name: Upload ISO artifact
uses: actions/upload-artifact@v4
with:
name: tensoragent-os-x86_64
path: tensoragent-os-x86_64.iso.xz
retention-days: 30
- name: Upload to release (tags only)
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: tensoragent-os-x86_64.iso.xz
# ═══════════════════════════════════════════════════════════════
# aarch64 build — runs on native ARM64 runner (no QEMU needed)
# ═══════════════════════════════════════════════════════════════
build-arm64:
runs-on: ubuntu-24.04-arm
permissions:
contents: write
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \
/usr/local/share/boost /usr/share/swift /opt/hostedtoolcache 2>/dev/null || true
sudo apt-get autoremove -y 2>/dev/null || true
sudo apt-get clean
df -h /
- name: Install build dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y \
debootstrap xorriso mtools squashfs-tools \
grub-efi-arm64-bin \
dosfstools xz-utils
- name: Build ISO (aarch64)
run: |
chmod +x ./scripts/build-iso.sh
sudo bash ./scripts/build-iso.sh --arch=aarch64 --clean
- name: Compress ISO
run: |
ls -lh tensoragent-os-aarch64.iso
xz -T0 -6 tensoragent-os-aarch64.iso
ls -lh tensoragent-os-aarch64.iso.xz
- name: Upload ISO artifact
uses: actions/upload-artifact@v4
with:
name: tensoragent-os-aarch64
path: tensoragent-os-aarch64.iso.xz
retention-days: 30
- name: Upload to release (tags only)
if: startsWith(github.ref, 'refs/tags/v')
uses: softprops/action-gh-release@v2
with:
files: tensoragent-os-aarch64.iso.xz
# ═══════════════════════════════════════════════════════════════
# Create GitHub Release (on tags only)
# ═══════════════════════════════════════════════════════════════
release:
if: startsWith(github.ref, 'refs/tags/v')
needs: [build-x86, build-arm64]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Download all ISOs
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
tensoragent-os-x86_64.iso.xz
tensoragent-os-aarch64.iso.xz
generate_release_notes: true
body: |
## TensorAgent OS ${{ github.ref_name }}
### Downloads
| Architecture | File | For |
|-------------|------|-----|
| x86_64 (Intel/AMD) | `tensoragent-os-x86_64.iso.xz` | PC, VirtualBox, VMware Workstation |
| aarch64 (ARM64) | `tensoragent-os-aarch64.iso.xz` | Apple Silicon, UTM, VMware Fusion |
> **Decompress after download:** `xz -d tensoragent-os-*.iso.xz`
### Quick Start
```bash
# Decompress
xz -d tensoragent-os-x86_64.iso.xz
# Flash to USB
sudo dd if=tensoragent-os-x86_64.iso of=/dev/sdX bs=4M status=progress
# VMware Fusion (Apple Silicon) — use the aarch64 ISO
# UTM (macOS) — use the aarch64 ISO
# VirtualBox / VMware Workstation — use the x86_64 ISO
```
### What's included
- 🐋 OpenWhale AI engine (multi-agent, MCP, tools)
- 🖥️ WhaleOS Qt6 Wayland desktop shell
- 📦 Ubuntu 24.04 LTS (Noble) base
- ⚡ Node.js 22, Python 3, SQLite
- 🌐 Chromium, Mousepad, Galculator, LibreOffice
- 🔒 Enterprise security (AppArmor, auditd, fail2ban)
**Login:** `ainux` / `ainux`