Skip to content

trial: validate the CI workflow - #1

Closed
peechycreation wants to merge 4 commits into
mainfrom
trial/ci-validation
Closed

peechycreation wants to merge 4 commits into
mainfrom
trial/ci-validation

Conversation

@peechycreation

Copy link
Copy Markdown
Owner

Internal fork-only PR to make GitHub Actions run the new workflow. Not for upstream.

`set -e` aborts the script when `grep` finds no "Developer ID
Application" line, so the "Apple Development" fallback the loop was
written for is never reached. On a machine that only has a development
certificate, build-app.sh exits 1 right after "Build complete" with no
message, leaving an unsigned, half-assembled bundle in build/.

Let the substitution fail quietly so the loop can try the next kind.
The project had no automated checks, so a release could ship a build
that does not compile from a clean checkout. This runs on macos-15:
swift build, the test suite with the machine-wide scan enabled (a runner
starts empty, so the walk that is slow locally is quick here),
scripts/build-app.sh, and a check that the assembled bundle has its
binary, its Info.plist, the SwiftPM resource bundle Bundle.module needs
and a valid signature.

The last step reruns compile-strings.sh and fails on a diff, so a catalog
edit committed without regenerating the .strings files is caught here
rather than as a half-translated menu at runtime.

Note: the bundle step needs the signing-identity fix, otherwise
build-app.sh aborts on a runner, which has no certificate at all.
itemsAreWellFormed and jsonInventoryIsWellFormed each walk $HOME,
/Library, /private/var, /opt, /usr/local and /Users/Shared and measure
every file under them. On a developer Mac that is over 20 minutes for the
pair, with no output until they finish, so `swift test` is not something
anyone runs before a commit.

Put them behind SYSDATA_SCAN_TESTS and give them a time limit. The
remaining suite is 9 tests in 8 ms; the inventory is still one variable
away, and a CI runner starts empty enough to enable it there.
Enabling it was wrong: a GitHub runner ships Xcode with its simulator
runtimes and device support, so the walk is no quicker there than on a
developer Mac. A trial run passed 23 minutes without finishing.

Also gives the job a 20-minute ceiling so a hang costs one job rather
than the six hours a runner will otherwise sit there.
@peechycreation

Copy link
Copy Markdown
Owner Author

CI validated (green in 56s). Closing the trial branch.

@peechycreation
peechycreation deleted the trial/ci-validation branch September 7, 2026 08:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant