Skip to content

Commit afe8fe3

Browse files
committed
Cache built products
1 parent 254c0a8 commit afe8fe3

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

.github/workflows/generate.yml

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,24 @@ jobs:
130130
run: sudo apt-get install git-filter-repo -y
131131
- name: Checkout
132132
uses: actions/checkout@v3
133+
- name: Detect Swift package information
134+
id: swift-package
135+
run: |
136+
echo "BUILD_PATH=$(swift build --show-bin-path -c release)" >> $GITHUB_ENV
137+
echo 'product-paths<<$EOF' >> $GITHUB_OUTPUT
138+
swift package describe --type json \
139+
| jq '.products[].name' -r \
140+
| sed "s#^#$(swift build --show-bin-path -c release)/#" \
141+
>> $GITHUB_OUTPUT
142+
echo '$EOF' >> $GITHUB_OUTPUT
143+
- name: Apply cache
144+
uses: actions/cache@v3
145+
id: build-cache
146+
with:
147+
path: ${{ steps.swift-package.outputs.product-paths }}
148+
key: ${{ runner.os }}-${{ hashFiles('Package.*', 'Sources/**') }}
133149
- name: Build
150+
if: ${{ !steps.build-cache.outputs.cache-hit }}
134151
run: swift build -c release
135152
- name: Checkout API models
136153
uses: actions/checkout@v3
@@ -160,12 +177,12 @@ jobs:
160177
git rebase "origin/$GITHUB_BASE_REF" --quiet
161178
- name: Generate teco-core
162179
run: |
163-
swift run -c release --skip-build teco-common-error-generator \
180+
${{ env.BUILD_PATH }}/teco-common-error-generator \
164181
--error-file ./models/zh-CN/error-codes.json \
165182
--output ./teco-core/Sources/TecoCore/Errors/TCCommonError.swift
166-
swift run -c release --skip-build teco-date-wrapper-generator \
183+
${{ env.BUILD_PATH }}/teco-date-wrapper-generator \
167184
--output-dir './teco-core/Sources/TecoDateHelpers/Property Wrappers'
168-
swift run -c release --skip-build teco-region-generator \
185+
${{ env.BUILD_PATH }}/teco-region-generator \
169186
--output ./teco-core/Sources/TecoCore/Common/TCRegion.swift
170187
- name: Checkout teco
171188
uses: actions/checkout@v3
@@ -189,9 +206,9 @@ jobs:
189206
git rebase "origin/$GITHUB_BASE_REF" --quiet
190207
- name: Generate teco
191208
run: |
192-
swift run -c release --skip-build teco-package-generator \
209+
${{ env.BUILD_PATH }}/teco-package-generator \
193210
--model-dir ./models/zh-CN \
194-
--service-generator .build/release/teco-service-generator \
211+
--service-generator ${{ env.BUILD_PATH }}/teco-service-generator \
195212
--package-dir ./teco
196213
if ! git diff --exit-code Package.swift
197214
then

0 commit comments

Comments
 (0)