Skip to content

Commit 6db2f56

Browse files
Mike Morganclaude
andcommitted
feat: Extended packaging - GPU enablement, upgrade orchestrator, secops
- cortex-upgrade: Safe upgrades with LVM/Btrfs/ZFS snapshot rollback - cortex-gpu: GPU detection, NVIDIA/AMD enablement, Secure Boot MOK - cortex-verify: Offline integrity verification tool - Meta-packages: cortex-secops, cortex-gpu-nvidia, cortex-gpu-amd, cortex-llm - KEY-ROTATION-RUNBOOK.md: GPG key ceremony and rotation procedures - HARDWARE-COMPATIBILITY.md: Certified server profiles - reproducible-builds.yml: CI with reprotest/diffoscope/lintian Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
0 parents  commit 6db2f56

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+6969
-0
lines changed

.github/workflows/build-iso.yml

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,198 @@
1+
# Cortex Linux ISO Build Workflow
2+
# Builds and publishes Cortex Linux ISO images
3+
# Copyright 2025 AI Venture Holdings LLC
4+
# SPDX-License-Identifier: Apache-2.0
5+
6+
name: Build ISO
7+
8+
on:
9+
push:
10+
branches: [main]
11+
tags: ['v*']
12+
paths:
13+
- 'iso/**'
14+
- 'packages/**'
15+
- 'Makefile'
16+
- '.github/workflows/build-iso.yml'
17+
pull_request:
18+
branches: [main]
19+
paths:
20+
- 'iso/**'
21+
- 'packages/**'
22+
- 'Makefile'
23+
workflow_dispatch:
24+
inputs:
25+
iso_type:
26+
description: 'ISO type to build'
27+
required: true
28+
default: 'offline'
29+
type: choice
30+
options:
31+
- netinst
32+
- offline
33+
- both
34+
35+
env:
36+
DEBIAN_FRONTEND: noninteractive
37+
38+
jobs:
39+
build-packages:
40+
name: Build Debian Packages
41+
runs-on: ubuntu-24.04
42+
steps:
43+
- name: Checkout
44+
uses: actions/checkout@v4
45+
46+
- name: Install build dependencies
47+
run: |
48+
sudo apt-get update
49+
sudo apt-get install -y \
50+
dpkg-dev \
51+
devscripts \
52+
debhelper \
53+
fakeroot \
54+
gnupg
55+
56+
- name: Build cortex-archive-keyring
57+
run: |
58+
cd packages/cortex-archive-keyring
59+
dpkg-buildpackage -us -uc -b
60+
61+
- name: Build cortex-core
62+
run: |
63+
cd packages/cortex-core
64+
dpkg-buildpackage -us -uc -b
65+
66+
- name: Build cortex-full
67+
run: |
68+
cd packages/cortex-full
69+
dpkg-buildpackage -us -uc -b
70+
71+
- name: Upload packages
72+
uses: actions/upload-artifact@v4
73+
with:
74+
name: debian-packages
75+
path: packages/*.deb
76+
retention-days: 7
77+
78+
build-iso:
79+
name: Build ISO Image
80+
runs-on: ubuntu-24.04
81+
needs: build-packages
82+
strategy:
83+
matrix:
84+
arch: [amd64]
85+
# arm64 builds require self-hosted runner with ARM
86+
steps:
87+
- name: Checkout
88+
uses: actions/checkout@v4
89+
90+
- name: Download packages
91+
uses: actions/download-artifact@v4
92+
with:
93+
name: debian-packages
94+
path: packages/
95+
96+
- name: Install live-build dependencies
97+
run: |
98+
sudo apt-get update
99+
sudo apt-get install -y \
100+
live-build \
101+
debootstrap \
102+
squashfs-tools \
103+
xorriso \
104+
isolinux \
105+
syslinux-efi \
106+
grub-pc-bin \
107+
grub-efi-amd64-bin \
108+
mtools \
109+
dosfstools
110+
111+
- name: Configure live-build
112+
run: |
113+
cd iso/live-build
114+
chmod +x auto/*
115+
sudo lb config
116+
117+
- name: Copy packages to chroot
118+
run: |
119+
mkdir -p iso/live-build/config/packages.chroot/
120+
cp packages/*.deb iso/live-build/config/packages.chroot/
121+
122+
- name: Build ISO
123+
run: |
124+
cd iso/live-build
125+
sudo lb build 2>&1 | tee build.log
126+
127+
- name: Generate checksums
128+
run: |
129+
cd iso/live-build
130+
sha256sum *.iso > SHA256SUMS
131+
sha512sum *.iso > SHA512SUMS
132+
133+
- name: Upload ISO
134+
uses: actions/upload-artifact@v4
135+
with:
136+
name: cortex-linux-${{ matrix.arch }}
137+
path: |
138+
iso/live-build/*.iso
139+
iso/live-build/SHA256SUMS
140+
iso/live-build/SHA512SUMS
141+
retention-days: 14
142+
143+
- name: Upload build log
144+
if: always()
145+
uses: actions/upload-artifact@v4
146+
with:
147+
name: build-log-${{ matrix.arch }}
148+
path: iso/live-build/build.log
149+
retention-days: 7
150+
151+
release:
152+
name: Create Release
153+
runs-on: ubuntu-24.04
154+
needs: build-iso
155+
if: startsWith(github.ref, 'refs/tags/v')
156+
permissions:
157+
contents: write
158+
steps:
159+
- name: Download ISO artifacts
160+
uses: actions/download-artifact@v4
161+
with:
162+
pattern: cortex-linux-*
163+
merge-multiple: true
164+
165+
- name: Download packages
166+
uses: actions/download-artifact@v4
167+
with:
168+
name: debian-packages
169+
170+
- name: Create Release
171+
uses: softprops/action-gh-release@v1
172+
with:
173+
files: |
174+
*.iso
175+
*.deb
176+
SHA256SUMS
177+
SHA512SUMS
178+
body: |
179+
## Cortex Linux ${{ github.ref_name }}
180+
181+
### Downloads
182+
- **cortex-linux-*-amd64-offline.iso** - Full offline installer
183+
- **cortex-linux-*-amd64-netinst.iso** - Minimal network installer
184+
185+
### Verification
186+
```bash
187+
sha256sum -c SHA256SUMS
188+
```
189+
190+
### Quick Start
191+
1. Write ISO to USB: `dd if=cortex-linux-*.iso of=/dev/sdX bs=4M status=progress`
192+
2. Boot from USB
193+
3. Follow installation prompts
194+
195+
### Documentation
196+
See https://cortexlinux.com/docs for full documentation.
197+
draft: false
198+
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc') }}

0 commit comments

Comments
 (0)