Skip to content

Add macOS CI, unify app-bundle scripts, Makefile improvements, and reduce ProcessMonitor poll interval#4

Closed
tanRdev wants to merge 1 commit intomasterfrom
tan/revive-and-polish-abandoned-project
Closed

Add macOS CI, unify app-bundle scripts, Makefile improvements, and reduce ProcessMonitor poll interval#4
tanRdev wants to merge 1 commit intomasterfrom
tan/revive-and-polish-abandoned-project

Conversation

@tanRdev
Copy link
Copy Markdown
Owner

@tanRdev tanRdev commented Mar 5, 2026

Motivation

  • Add a macOS CI workflow to validate unit tests and app-bundle creation on push/PR and modernize local build tooling for multiple configurations.
  • Make app bundle creation robust and architecture-agnostic by routing legacy scripts through a single maintained workflow and using swift build --show-bin-path instead of hardcoded paths.
  • Reduce process sampling latency and improve refresh safety in the process monitor by shortening the poll interval and guarding the refresh lifecycle.

Description

  • Add GitHub Actions workflow .github/workflows/ci.yml that runs on macOS and executes swift test and ./build-app.sh debug for push and pull_request events.
  • Replace multiple bundle scripts with a single robust build-app.sh that supports debug|release, checks macOS runtime, uses --show-bin-path, creates proper Contents/ layout, copies executable, and generates an .icns from the Xcode AppIcon.appiconset when iconutil is available; create-app-bundle.sh and run-lucid.sh now delegate to build-app.sh.
  • Update Makefile to add CONFIG variable, new targets (test, install), use swift build --configuration $(CONFIG), and open/install the built .app using the --show-bin-path bin path.
  • Update Package.swift to exclude Info.plist and Lucid.entitlements from the executable target resources.
  • Change ProcessMonitor polling interval from 3.0s to 2.0s and make the refresh() function set isRefreshing = false via defer to ensure the guard is released even on early returns; remove redundant isRefreshing reset inside the MainActor block.
  • Update README.md with project status, CI details, updated build/run instructions, and documentation reflecting the 2s poll interval and updated tooling.

Testing

  • A CI job was added to run swift test and ./build-app.sh debug on macOS via .github/workflows/ci.yml, but no CI run results are included in this PR.
  • Unit tests can be executed locally with swift test or make test, and app bundle verification can be run with ./build-app.sh debug as configured in the workflow.

@tanRdev tanRdev closed this Mar 7, 2026
@tanRdev tanRdev deleted the tan/revive-and-polish-abandoned-project branch March 7, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant