Skip to content

Commit 8e86d6b

Browse files
authored
Merge pull request #3 from onevcat/ci-cache-swiftpm
Speed up CI with SwiftPM cache
2 parents e9c5463 + be7a772 commit 8e86d6b

File tree

1 file changed

+38
-4
lines changed

1 file changed

+38
-4
lines changed

.github/workflows/ci.yml

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,33 @@ jobs:
2121
steps:
2222
- uses: actions/checkout@v4
2323

24-
- name: Set up Swift
24+
- name: Set up Swift (Linux)
25+
if: runner.os != 'macOS'
2526
uses: swift-actions/setup-swift@v2
2627
with:
2728
swift-version: ${{ matrix.swift }}
2829

30+
- name: Resolve Swift version
31+
id: swift-version
32+
run: |
33+
set -euo pipefail
34+
if [ "${RUNNER_OS}" = "macOS" ]; then
35+
SWIFT_BIN="$(xcrun -f swift)"
36+
else
37+
SWIFT_BIN="swift"
38+
fi
39+
SWIFT_VERSION="$("${SWIFT_BIN}" --version | head -n 1 | awk '{print $4}')"
40+
echo "version=${SWIFT_VERSION}" >> "${GITHUB_OUTPUT}"
41+
echo "Swift version: ${SWIFT_VERSION}"
42+
43+
- name: Cache SwiftPM
44+
uses: actions/cache@v4
45+
with:
46+
path: |
47+
.build
48+
~/.swiftpm
49+
key: swiftpm-${{ runner.os }}-swift-${{ steps.swift-version.outputs.version }}-release-${{ hashFiles('Package.resolved', 'Package.swift') }}
50+
2951
- name: Build and test
3052
env:
3153
CHROMA_PERF_BASELINE_SECONDS: "10"
@@ -37,10 +59,22 @@ jobs:
3759
steps:
3860
- uses: actions/checkout@v4
3961

40-
- name: Set up Swift
41-
uses: swift-actions/setup-swift@v2
62+
- name: Resolve Swift version
63+
id: swift-version
64+
run: |
65+
set -euo pipefail
66+
SWIFT_BIN="$(xcrun -f swift)"
67+
SWIFT_VERSION="$("${SWIFT_BIN}" --version | head -n 1 | awk '{print $4}')"
68+
echo "version=${SWIFT_VERSION}" >> "${GITHUB_OUTPUT}"
69+
echo "Swift version: ${SWIFT_VERSION}"
70+
71+
- name: Cache SwiftPM
72+
uses: actions/cache@v4
4273
with:
43-
swift-version: "6.0"
74+
path: |
75+
.build
76+
~/.swiftpm
77+
key: swiftpm-${{ runner.os }}-swift-${{ steps.swift-version.outputs.version }}-release-${{ hashFiles('Package.resolved', 'Package.swift') }}
4478

4579
- name: Install jemalloc
4680
env:

0 commit comments

Comments
 (0)