feat: add scoped Swift CI and narrow Go workflow triggers#24
Merged
Conversation
The repository now contains both Go and Swift code, but the existing CI workflow ran on every push and pull request even when only unrelated files changed. That added noise to reviews and still left the Swift package without any dedicated GitHub Actions coverage. Add a separate Swift CI workflow that runs swift build and swift test for macos/ControlCenter when Swift package files change, and scope the existing Go CI workflow so it only runs for Go source or dependency updates. Each workflow still triggers on edits to its own YAML so CI configuration changes remain validated without reintroducing broad repo-wide runs. This change only adjusts workflow triggering and adds Swift package validation in GitHub Actions. It does not change the release workflow or application code.
The PR added scoped Go and Swift workflows, but their display names still reflected generic CI labels instead of the platform each workflow validates. Rename the workflow titles to Go and macOS so the Actions tab and PR checks clearly describe what each job is responsible for. This only changes workflow metadata and leaves triggers and commands unchanged.
The macOS workflow previously exposed Swift validation as a single combined job, which made it harder to see whether failures came from compilation or test execution. Split the workflow into separate build and test jobs so GitHub reports them independently. The jobs intentionally remain parallel instead of chaining through needs because GitHub-hosted jobs do not share Swift build output by default, so serializing them would only slow feedback without avoiding a rebuild in the test job.
The macOS workflow already split build and test into separate jobs, but GitHub Actions would display only the lowercase job ids by default. Add explicit Build and Test job names so the PR checks read clearly in the Actions tab and review UI. This is a metadata-only workflow change; triggers and commands stay the same.
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.
The repository now has two codepaths with different validation needs: the existing Go CLI/runtime and the Swift package under
macos/ControlCenter. The old CI workflow ran on every push and pull request, which added noise for non-Go changes and still left the Swift package without dedicated GitHub Actions coverage.What changed and why
Swift CIworkflow that runsswift buildandswift testinmacos/ControlCenterwhen Swift package sources or manifests changeCIworkflow to run only when Go source files or Go dependency manifests changeBefore this change, unrelated documentation or repository changes still triggered the Go CI pipeline, and Swift changes had no separate GitHub Actions build/test coverage. After this change, Go CI only runs for Go-relevant changes, while Swift package changes get their own macOS build/test workflow.
The release workflow is unchanged.
Validation: parsed both workflow files successfully, then ran
go build ./...,go test ./...,gofmtcleanliness checks,swift build, andswift testlocally.