Skip to content

feat(release): show builds in status and wait for a build to process - #522

Merged
YosefHayim merged 10 commits into
mainfrom
feat/release/status-builds-and-watch
Nov 9, 2026
Merged

YosefHayim merged 10 commits into
mainfrom
feat/release/status-builds-and-watch

Conversation

@YosefHayim

@YosefHayim YosefHayim commented Nov 9, 2026 •

Copy link
Copy Markdown
Owner

Fixes #494

What changed

  • launch status shows the build attached to each app's current version, with its processing state when it is not VALID. It shows "no build" when none is attached (JSON buildNumber is null). It reads this from the same versions request, so there is no extra call.
  • launch status --builds lists each app's 25 most recent builds: version, build number, processing state, and upload time in UTC. The app id is looked up once per app.
  • launch status --watch --build <n> waits until build n is VALID and exits. It fails on FAILED or INVALID, and says so when the build never appears before the timeout. --json prints one result object with ok: true or ok: false and an error.
  • launch release fails fast on FAILED or INVALID instead of waiting 30 minutes. A build that never appears still waits the full 30-minute timeout before it exits 1.
  • --build with no iOS app exits 1 with a clear message. A --build that is not a whole number above 0 exits 2, and so does --build without --watch, or --builds with --watch.
  • The wait also matches the build's marketing version, so two versions that reuse build number 42 do not get mixed up. The promote path still picks by build number only, since it has no marketing version at hand.
  • --account <id> picks the Apple account, the same flag launch release has. With no flag it uses ASC_ACCOUNT, then the active account.
  • The table formatter moved to src/core/terminal/table.ts so status and build history share it.

Checks

  • pnpm check passed on the pre-push hook: lint, typecheck, docs check, test and build.
  • No live App Store Connect calls were made.

@YosefHayim YosefHayim added the domain:release Public release, rollout, release trains label Nov 9, 2026
@YosefHayim
YosefHayim merged commit e362271 into main Nov 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

domain:release Public release, rollout, release trains

Projects

None yet

Development

Successfully merging this pull request may close these issues.

status: show each version's build, list recent builds, and wait for a build to process

1 participant