-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Context
The CI workflow (.github/workflows/ci.yml) previously fetched pre-built .a static libraries via Git LFS / media.githubusercontent.com. Git LFS has been permanently removed from this repo due to bandwidth budget issues, so the download step now returns empty files and the build fails.
CI has been frozen: the workflow trigger was changed from push/pull_request to workflow_dispatch only (manual). It will not run automatically until re-enabled.
Commit: the CI freeze is part of the upcoming infra(ci): freeze CI commit on main.
What needs to happen to unfreeze
Replace the old LFS-fetch steps with a source-build pipeline:
- Checkout
daiimus/ghosttyatios-external-backend(or a pinned ref viaghostty.reffile) - Install Zig 0.15.x (use
mlugg/setup-zigaction or similar) - Build GhosttyKit:
zig build -Demit-xcframework=true -Dxcframework-target=universal - Copy xcframework to
Geistty/Frameworks/GhosttyKit.xcframework/ - Rename modulemap:
module.modulemap→GhosttyKit.modulemapin each arch's Headers dir - Build Geistty (existing xcodebuild steps)
- Run tests (existing xcodebuild test steps)
Optional improvements
- Two CI lanes: fast (Swift-only, skip GhosttyKit rebuild if no ghostty changes) and integration (full rebuild)
ghostty.refpin file: a single file containing the ghostty commit SHA to build against, for reproducibility once iteration slows- Cache the built xcframework keyed on the ghostty ref
Exit criteria
- CI runs automatically on push to
mainand on PRs - Build succeeds end-to-end (GhosttyKit from source + Geistty build + tests)
- No Git LFS dependency anywhere in the pipeline
Re-enable trigger
When the tmux C API surface and core terminal behavior stabilize (fewer breaking ghostty changes per week), making it practical to build GhosttyKit in CI without constant failures from API churn.
Current local-only workflow
Until CI is re-enabled, validation is local:
# Build GhosttyKit
cd /Users/daiimus/Repositories/ghostty
zig build -Demit-xcframework=true -Dxcframework-target=universal
cp -R macos/GhosttyKit.xcframework /Users/daiimus/Repositories/geistty/Geistty/Frameworks/
# Build + test Geistty
cd /Users/daiimus/Repositories/geistty/Geistty
./ci.sh build
./ci.sh test