Skip to content

Validate with local-check instead of scripts/validate.sh - #588

Merged
bradleymackey merged 1 commit into
mainfrom
devops/local-check
Sep 25, 2026
Merged

bradleymackey merged 1 commit into
mainfrom
devops/local-check

Conversation

@bradleymackey

Copy link
Copy Markdown
Member

Summary

scripts/validate.sh, and gps-app's copy of it, are now one tested package, badbundle/local-check (v0.1.0), which both repos depend on. make validate still posts the same Validate (local) check that main requires, from the same checks.

  • The checks are in local-check.config.ts and are the same as before:

    1. make lint, keeping Vault/.build between runs so it's incremental;
    2. the Fastlane config check, with rbenv's shims first on PATH as Fix the flaky race cancellation tests and run the Fastlane check under rbenv #587 added. It's skipped, and named on the check, if the Ruby in .ruby-version isn't installed;
    3. a build and full run of iOSAllTests with Xcode 27.0, on a throwaway iPhone 18 Pro Max simulator addressed by UDID.

    The config is loaded from the commit being validated, so a commit carries its own checks.

  • Setup is bun install. package.json pins github:badbundle/local-check#v0.1.0, and its prepare script writes .githooks/pre-push and points core.hooksPath at it. The hook is now a small shim that runs the installed local-check.

  • make validate runs bun install --frozen-lockfile first, so the copy that runs always matches the pin, then bun run validate.

  • Results and logs move from .git/validate/ to .git/local-check/. The worktree and DerivedData move to ~/Library/Caches/local-check/.

  • Docs: README.md's Validation section and both AGENTS.md files now describe the Bun setup and point to local-check.config.ts.

  • Removed: scripts/validate.sh.

Moving to a newer local-check is a deliberate change: bump the tag in package.json, run bun install, and validate.

Test plan

  • make validate on this PR's commit: Lint, Fastlane config, Build and Tests passed in 3m34s. The Fastlane check ran on Ruby 4.0.5, and the throwaway simulator was deleted afterwards.
  • The new pre-push hook posted Validate (local): success when the branch was pushed.
  • A fresh bun install --frozen-lockfile from bun.lock installs local-check 0.1.0, identical to the tag.

🤖 Generated with Claude Code

The validation script, and gps-app's copy of it, are now one tested package,
badbundle/local-check, which both repos depend on. The checks it runs here
are in local-check.config.ts and are the same as before: lint, the Fastlane
config check under rbenv's Ruby, then a build and full run of the
iOSAllTests plan on a throwaway iPhone 18 Pro Max simulator with Xcode 27.0.

- package.json pins local-check. Its prepare script installs the pre-push
  hook, so `bun install` is the only setup a clone needs.
- `make validate` installs first, so the copy that runs always matches the
  pin, then runs `bun run validate`.
- Results and logs move from .git/validate/ to .git/local-check/.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bradleymackey
bradleymackey merged commit 04017c5 into main Sep 25, 2026
1 check passed
@bradleymackey
bradleymackey deleted the devops/local-check branch September 25, 2026 14: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