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:
1 parent
d19aca2333
commit
a9efede702
12 files changed
+2186
-92
No files matched your search
@@ -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"
|
||||
Reference in new issue
Block a user