Skip to content

ci: resolve dependencies before touching the keychain - #9

Merged
TerrifiedBug merged 1 commit into
mainfrom
ci/resolve-deps-before-keychain
Aug 27, 2026
Merged

ci: resolve dependencies before touching the keychain#9
TerrifiedBug merged 1 commit into
mainfrom
ci/resolve-deps-before-keychain

Conversation

@TerrifiedBug

Copy link
Copy Markdown
Owner

Two v0.1.0 attempts stalled on exactly this line inside build-release.sh:

19:10:23  Working copy of sparkle-project/Sparkle resolved at 2.9.6
19:10:26  Downloading binary artifact .../2.9.6/Sparkle-for-Swift-Package-Manager.zip
19:33:04  ##[error]The operation was canceled.
Terminate orphan process: pid (2573) (swift-package)

It is not the network and not SwiftPM-vs-xcodebuild:

  • Browseroute CI's plain swift build fetched the same 11 MB zip and finished the whole job in 24s, at 19:34 — between the two stalled release runs.
  • TickerBar pulls Sparkle over SPM too (XCRemoteSwiftPackageReference, resolved 2.8.1, same binaryTarget zip) and its build+sign+notarize is 72s.

What differs is ordering: in the release job that download happens after the job has created and unlocked a custom keychain and replaced the user keychain search list.

  • Move dependency resolution to the top of the job, before any signing state exists.
  • timeout-minutes: 8 on it and 25 on build/sign/notarize, so a stall costs minutes instead of burning the 45-minute job with no output.

swift package resolve also populates .build/artifacts, which the later sign_update lookup already expects.

Two v0.1.0 attempts stalled 20+ minutes on "Downloading binary artifact
Sparkle-for-Swift-Package-Manager.zip" inside build-release.sh, leaving
an orphan swift-package process. CI's plain swift build fetched the same
zip in 24s on the same runner image, so it is not the network: the
difference is that the release job had already created and unlocked a
custom keychain and replaced the user keychain search list.

Resolve at the top of the job instead, before any signing state exists,
and bound both steps so a stall costs minutes instead of the whole job.
@TerrifiedBug
TerrifiedBug merged commit b666137 into main Aug 27, 2026
1 check passed
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