improve: build tooling, CI, and documentation#5
Merged
Conversation
- Add GitHub Actions CI workflow for macOS (tests + app bundle verification) - Use architecture-agnostic build paths via swift build --show-bin-path - Consolidate bundle scripts: create-app-bundle.sh delegates to build-app.sh - Remove redundant run-lucid.sh (use 'make run' instead) - Improve ProcessMonitor: defer pattern for isRefreshing, 2s poll interval - Exclude Info.plist and entitlements from SPM resources - Update README with build/CI improvements (remove 'abandoned' language) - Fix CI: only target existing branches (main, master) Co-authored-by: Agent <agent@example.com>
The count(where:) method was introduced in Swift 6.0, but CI runners
on macOS-14 use Swift 5.10. Replace with filter { }.count pattern
which works on both Swift 5.10 and Swift 6.x.
tanRdev
added a commit
that referenced
this pull request
Mar 7, 2026
- Add GitHub Actions CI workflow for macOS (tests + app bundle verification) - Use architecture-agnostic build paths via swift build --show-bin-path - Consolidate bundle scripts: create-app-bundle.sh delegates to build-app.sh - Remove redundant run-lucid.sh (use 'make run' instead) - Improve ProcessMonitor: defer pattern for isRefreshing, 2s poll interval - Exclude Info.plist and entitlements from SPM resources - Update README with build/CI improvements (remove 'abandoned' language) - Fix CI: only target existing branches (main, master) - fix: replace count(where:) with filter for Swift 5.10 compatibility
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR improves build tooling, adds continuous integration, and updates documentation. It consolidates duplicate scripts, fixes a bug in ProcessMonitor, and modernizes the build system to be architecture-agnostic.
Changes
🆕 Continuous Integration
.github/workflows/ci.yml— New GitHub Actions workflow that runs on macOS 14 for every push tomaster/mainand every pull request:swift testfor unit tests./build-app.sh debug🐛 Bug Fix
ProcessMonitor.swift— FixedisRefreshingguard usingdeferpattern, ensuring the flag is always reset even on early returns (prevents potential deadlocks)⚡ Performance & UX
ProcessMonitor.swift— Reduced poll interval from 3.0s to 2.0s for more responsive UI updates🔧 Build System Improvements
Makefile— Architecture-agnostic builds usingswift build --show-bin-path(supports both Intel and Apple Silicon)Makefile— Addedmake testtargetMakefile— Fixed double-build issue inrunandinstalltargetsPackage.swift— ExcludedInfo.plistandLucid.entitlementsfrom SPM resources🧹 Cleanup
build-app.sh— Consolidated and refactored (153 lines reduced)create-app-bundle.sh— Now delegates tobuild-app.sh(single source of truth)run-lucid.sh— Deleted (was redundant withmake run)📚 Documentation
README.md— Added CI section, build instructions, and development branch infoFile Changes
.github/workflows/ci.ymlLucid/Lucid/Services/ProcessMonitor.swiftLucid/MakefileLucid/Package.swiftLucid/build-app.shLucid/create-app-bundle.shLucid/run-lucid.shREADME.mdTesting
CI
GitHub Actions will automatically run tests and verify the app bundle builds correctly.