Skip to content

Add GitHub Actions CI workflow #58

@dhilgaertner

Description

@dhilgaertner

Parent Issue

Part of #52 — Open Source Readiness & Launch Strategy

Overview

Set up continuous integration via GitHub Actions to validate builds and run tests on every pull request. This is essential for maintaining code quality with external contributors.

Scope

  • Create .github/workflows/ci.yml
  • Trigger on: pull requests to main, pushes to main
  • macOS runner (macos-14 or macos-15 for Apple Silicon support)
  • Install prerequisites: Zig 0.15.2 (via mise or direct download)
  • Initialize Ghostty submodule
  • Run make build (full build including Ghostty framework)
  • Run swift test
  • Consider: cache Ghostty framework build (expensive step — Zig compilation takes several minutes)
  • Consider: cache Swift Package Manager dependencies
  • Consider: separate fast job (swift build + test only, skip Ghostty) for quick feedback

Technical Notes

  • Build requires: Zig 0.15.2, Swift 6.0+, Xcode with Metal Toolchain
  • Ghostty build is the slowest step — caching the Frameworks/ directory between runs is recommended
  • make check validates prerequisites and can be used as a pre-flight step
  • Tests use Swift Testing framework (@Test macros)

Acceptance Criteria

  • CI runs on every PR
  • Build failures block merge (when branch protection is configured)
  • Reasonable build times (< 15 minutes with caching)
  • Clear failure messages for contributors

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions