mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 23:55:51 +03:00
[GH-ISSUE #760] builds: add wait subcommand for blocking until processing completes #202
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#202
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @mithileshchellappan on GitHub (Feb 24, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/760
Summary
Add a
builds waitsubcommand that blocks until a specific build transitions fromPROCESSINGto a terminal state (VALID,FAILED,INVALID), with configurable timeout and polling interval.Problem
The
publish testflight --waitflag already implements processing-wait semantics, but it is only available as part of the full publish workflow. When a build has already been uploaded externally (e.g., viaxcodebuild -exportArchive -exportOptionsPlistwithdestination: upload, which handles automatic signing and provisioning profile resolution), there is no standalone way to wait for processing to complete before running distribution commands.This forces agents into manual polling loops:
This is error-prone (no timeout, no failure handling) and verbose for a common workflow step.
Proposal
Behavior
processingStateat--poll-interval(default: 30s)0when state becomesVALIDFAILEDorINVALID(if--fail-on-invalid)--timeoutexpiry (default: 15m)Waiting for build 28... (PROCESSING, 1m elapsed)Flags
--build--app--version--timeout15m--poll-interval30s--fail-on-invalidfalse--outputjsonAPI Support
Uses existing
/v1/builds/{id}endpoint to pollprocessingState. The--app+--versionvariant would usefilter[app]+filter[version]on/v1/buildsto resolve the build ID first.Scope
internal/cli/builds/builds_wait.go: new subcommand implementationpublish testflight --waitif applicableAcceptance Criteria
asc builds wait --build BUILD_IDblocks until build isVALIDand exits 0asc builds wait --build BUILD_ID --timeout 1sexits non-zero on timeoutasc builds wait --app APP_ID --version 28resolves build by app + version--output jsonon stdoutASC_BYPASS_KEYCHAIN=1Use Case
This is the most common missing primitive for agents that use
xcodebuildfor archiving/uploading (which provides better automatic signing support) but want to useascfor the TestFlight distribution step. The workflow becomes: