Ale*_*cha 8 github swift swift-package-manager github-actions
我正在尝试使用缓存操作在 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-
Run Code Online (Sandbox Code Playgroud)
我觉得当你使用 Xcode 添加 SPM 包时不可能使用缓存
有人成功地将缓存添加到您的项目中,甚至通过 Xcode 管理 SPM 吗?或者我的 .yml 文件可能有问题,但不幸的是我无法使其工作。
Cas*_*sey 14
您使用的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-
Run Code Online (Sandbox Code Playgroud)
由于您让 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-
Run Code Online (Sandbox Code Playgroud)
由于您使用的是 CI + SPM,我建议您停止通过 Xcode 管理 SPM,而是手动使用swift package. 这将使您能够更可预测.buildSPM 包的位置 ( )。
| 归档时间: |
|
| 查看次数: |
2786 次 |
| 最近记录: |