[英]SPM cache not working on github actions, any ideas?
我正在嘗試使用緩存操作在 GitHub Actions 上緩存 SPM 包,我正在遵循以下示例:
- uses: actions/cache@v2
with:
path: Myproject.xcworkspace/xcshareddata/swiftpm/Package.resolved
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
當您使用 Xcode 添加 SPM 包時,我覺得不可能使用緩存
是否有人成功地將緩存添加到您的項目中,甚至通過 Xcode 管理 SPM? 或者我的 .yml 文件可能有問題,但不幸的是我無法讓它工作。
您使用的path
參數不正確。
path - 要緩存和恢復的文件、目錄和通配符模式的列表。 有關支持的模式,請參閱@actions/glob 。
它應該指向您希望緩存的任何文件/文件夾,而不是設置解析文件的path
。
actions/cache
的文檔實際上顯示了如何將它用於 SPM:
- uses: actions/cache@v2
with:
path: .build
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
由於您讓 Xcode 管理 Swift 包,因此文件最終存儲在與使用swift package
手動管理它們不同的位置。
這種變體應該可以找到文件(但 Xcode 可以隨時更改存儲它們的位置):
- uses: actions/cache@v2
with:
path: /Users/runner/Library/Developer/Xcode/DerivedData/**/SourcePackages/checkouts
key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
由於您使用的是 CI + SPM,我建議您停止通過 Xcode 管理 SPM,而是手動使用swift package
。 這將允許您為 SPM 包提供更可預測的位置 ( .build
)。
第二個變體不知道為什么它對我不起作用,無論如何感謝您的幫助🙌。
我給了它最后一槍,這成功了!
- uses: actions/cache@v3
name: "Cache: SPM"
with:
path: ~/Library/Developer/Xcode/DerivedData/AppName*/SourcePackages/
key: ${{ runner.os }}-spm-${{ hashFiles('AppName.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.