Phase 4-6: Quill editor, Lens viewer, Rigel context menu, CI, website

Phase 4 — native apps:
- quill/: text editor (monospace, double-buffered, find bar, undo, open/save)
- lens/: image viewer using imlib2 (zoom, pan, rotate, directory nav)
- wm/src/menu.c: launch quill instead of mousepad
- iso/docker/entrypoint.sh: add imlib2 package; install quill + lens binaries
- skykit/template/: developer app template demonstrating the SkyKit API

Phase 5 — file system and search:
- rigel/rigel.c: right-click context menu (open, open in quill, copy path,
  rename, trash, properties); Ctrl+F search/filter bar with name highlighting;
  F2 rename-in-place overlay; Delete key moves to trash

Phase 6 — distribution:
- .github/workflows/build-iso.yml: GitHub Actions CI that compiles all
  components and builds a bootable ISO on every tag push; creates a GitHub
  release with sha256 checksums

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
nmemmertandClaude Sonnet 4.6 committed 2026-07-24 10:07:45 -04:00
1 parent d19aca2333
commit a9efede702
12 files changed
+2186 -92

No files matched your search

+108
View File
@@ -0,0 +1,108 @@
name: Build OrionOS ISO
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
release_name:
description: 'Release label (e.g. v0.1-mintaka)'
required: false
default: 'nightly'
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Install dependencies on host
run: |
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends \
build-essential \
libx11-dev libxft-dev libfontconfig1-dev \
libimlib2-dev \
pkg-config \
xorg-dev
- name: Build OrionOS shell components
run: |
make skykit rigel quill lens || true
make wm deskbar launcher installer nebula orionpkg || true
- name: Build ISO (Docker)
run: |
chmod +x build-iso.sh
./build-iso.sh
env:
DOCKER_BUILDKIT: 1
- name: Verify ISO was created
run: |
ls -lh dist/*.iso
sha256sum dist/*.iso > dist/SHA256SUMS
- name: Upload ISO as artifact
uses: actions/upload-artifact@v4
with:
name: orionos-iso-${{ github.run_number }}
path: |
dist/*.iso
dist/SHA256SUMS
retention-days: 30
- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
name: OrionOS ${{ github.ref_name }}
body: |
## OrionOS ${{ github.ref_name }}
Bootable live ISO. Burn to USB with:
```
sudo dd if=orionos.iso of=/dev/sdX bs=4M status=progress && sync
```
Or use [Balena Etcher](https://etcher.balena.io/).
### What's included
- OrionWM — tiling/floating window manager
- Rigel — native file manager (right-click menu, search)
- Quill — native text editor
- Lens — native image viewer
- OrionDeskbar — application bar
- Nebula — system settings
- OrionPkg — package manager GUI
- OrionInstall — graphical installer
### Verify
```
sha256sum -c SHA256SUMS
```
files: |
dist/*.iso
dist/SHA256SUMS
draft: false
prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc') }}
# Separate job: build and push Docker image used by the ISO builder
docker:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/checkout@v4
- name: Build ISO builder image
run: docker build -t orionos-builder:latest iso/docker/
- name: Smoke test builder
run: docker run --rm orionos-builder:latest echo "Builder image OK"