Commit 0a335e1
ci: cache + retry SPM package resolution in the app job
The app CI job resolved ~15 Swift packages (Sparkle, Sentry, libghostty,
the tree-sitter grammars, swift-syntax pulled transitively) by cloning them
from GitHub on every run, with no cache and no retry. A transient
github.com:443 timeout mid-clone failed the whole build:
fatal: unable to access 'https://github.com/swiftlang/swift-syntax/':
Failed to connect to github.com port 443 ... Couldn't connect to server
xcodebuild: error: Could not resolve package dependencies
Cache DerivedData/SourcePackages keyed on project.yml (the sole source of
the dependency set — the .xcodeproj is xcodegen-generated and gitignored) so
an unchanged set skips the network, and resolve up front with 3 retries so a
transient blip retries instead of failing. The app-test build reuses the
checkouts via the same -clonedSourcePackagesDirPath and won't re-clone.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01KVeVCUyQymuhEkk4kWJ8Pb1 parent fa8547c commit 0a335e1
1 file changed
Lines changed: 29 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
56 | 85 | | |
57 | 86 | | |
58 | 87 | | |
| |||
0 commit comments