[英]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.