Skip to content

Commit 94e3166

Browse files
authored
chore: make cache keys cleaner (#242)
1 parent 6d60798 commit 94e3166

File tree

3 files changed

+217
-114
lines changed

3 files changed

+217
-114
lines changed

.github/actions/cache/action.yml

Lines changed: 144 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -9,133 +9,214 @@ inputs:
99
language:
1010
description: The language to retrieve dependencies.
1111
required: false
12-
default: javascript
1312

1413
runs:
1514
using: composite
1615
steps:
17-
# restore clients
16+
# JavaScript setup
17+
- name: Get yarn cache directory path
18+
shell: bash
19+
id: yarn-cache-dir
20+
run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
21+
22+
- name: Restore Yarn
23+
uses: actions/cache@v2
24+
with:
25+
path: ${{ steps.yarn-cache-dir.outputs.dir || '.yarn/cache' }}
26+
key: node-cache-${{ env.CACHE_VERSION }}-yarn-${{ hashFiles('yarn.lock') }}
27+
28+
- name: Install JavaScript dependencies
29+
shell: bash
30+
run: yarn install
31+
32+
# Java setup: used during 'java' generation or 'cts'
33+
- name: Download Java formatter
34+
if: ${{ inputs.language == 'java' || inputs.job == 'cts' }}
35+
shell: bash
36+
run: curl -L "https://github.com/google/google-java-format/releases/download/v1.13.0/google-java-format-1.13.0-all-deps.jar" > /tmp/java-formatter.jar
37+
38+
- name: Download openapi generator jar for java (TODO REMOVE)
39+
if: ${{ inputs.language == 'java' || inputs.job == 'cts' }}
40+
shell: bash
41+
run: curl -L "https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.4.0/openapi-generator-cli-5.4.0.jar" > /tmp/openapi-generator-cli.jar
42+
43+
# Restore JavaScript clients utils: used during 'javascript' generation or 'cts'
1844
- name: Restore built JavaScript common client
19-
if: ${{ inputs.job == 'cts' || inputs.job == 'javascript-client' }}
45+
if: ${{ inputs.language == 'javascript' || inputs.job == 'cts' }}
2046
uses: actions/cache@v2
2147
with:
22-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-common/dist
23-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-common-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-common/**') }}
48+
path: clients/algoliasearch-client-javascript/packages/client-common
49+
key: |
50+
${{ env.CACHE_VERSION }}-${{
51+
hashFiles(
52+
'clients/algoliasearch-client-javascript/packages/client-common/**',
53+
'!clients/algoliasearch-client-javascript/packages/client-common/dist'
54+
)}}
2455
2556
- name: Restore built JavaScript node requester
26-
if: ${{ inputs.job == 'cts' || inputs.job == 'javascript-client' }}
57+
if: ${{ inputs.language == 'javascript' || inputs.job == 'cts' }}
2758
uses: actions/cache@v2
2859
with:
29-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/requester-node-http/dist
30-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-requester-node-http-${{ hashFiles('clients/algoliasearch-client-javascript/packages/requester-node-http/**') }}
60+
path: clients/algoliasearch-client-javascript/packages/requester-node-http
61+
key: |
62+
${{ env.CACHE_VERSION }}-${{
63+
hashFiles(
64+
'clients/algoliasearch-client-javascript/packages/requester-node-http/**',
65+
'!clients/algoliasearch-client-javascript/packages/requester-node-http/dist'
66+
)}}
3167
3268
- name: Restore built JavaScript browser requester
33-
if: ${{ inputs.job == 'cts' || inputs.job == 'javascript-client' }}
69+
if: ${{ inputs.language == 'javascript' || inputs.job == 'cts' }}
3470
uses: actions/cache@v2
3571
with:
36-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/requester-browser-xhr/dist
37-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-requester-browser-xhr-${{ hashFiles('clients/algoliasearch-client-javascript/packages/requester-browser-xhr/**') }}
38-
72+
path: clients/algoliasearch-client-javascript/packages/requester-browser-xhr
73+
key: |
74+
${{ env.CACHE_VERSION }}-${{
75+
hashFiles(
76+
'clients/algoliasearch-client-javascript/packages/requester-browser-xhr/**',
77+
'!clients/algoliasearch-client-javascript/packages/requester-browser-xhr/dist'
78+
)}}
79+
80+
# Restore JavaScript clients: used during 'cts'
3981
- name: Restore built JavaScript algoliasearch client
40-
if: ${{ inputs.job == 'cts' }}
82+
if: ${{ inputs.job == 'cts'}}
4183
uses: actions/cache@v2
4284
with:
43-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/algoliasearch/dist
44-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-algoliasearch-${{ hashFiles('clients/algoliasearch-client-javascript/packages/algoliasearch/**') }}
85+
path: clients/algoliasearch-client-javascript/packages/algoliasearch
86+
key: |
87+
${{ env.CACHE_VERSION }}-${{
88+
hashFiles(
89+
'clients/algoliasearch-client-javascript/packages/algoliasearch/**',
90+
'!clients/algoliasearch-client-javascript/packages/algoliasearch/dist'
91+
)}}
4592
4693
- name: Restore built JavaScript search client
4794
if: ${{ inputs.job == 'cts' }}
4895
uses: actions/cache@v2
4996
with:
50-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-search/dist
51-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-search-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-search/**') }}-${{ hashFiles('specs/bundled/search.yml') }}
97+
path: clients/algoliasearch-client-javascript/packages/client-search
98+
key: |
99+
${{ env.CACHE_VERSION }}-${{
100+
hashFiles(
101+
'clients/algoliasearch-client-javascript/packages/client-search/**',
102+
'!clients/algoliasearch-client-javascript/packages/client-search/dist',
103+
'specs/bundled/search.yml'
104+
)}}
52105
53106
- name: Restore built JavaScript recommend client
54107
if: ${{ inputs.job == 'cts' }}
55108
uses: actions/cache@v2
56109
with:
57-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/recommend/dist
58-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-recommend-${{ hashFiles('clients/algoliasearch-client-javascript/packages/recommend/**') }}-${{ hashFiles('specs/bundled/recommend.yml') }}
110+
path: clients/algoliasearch-client-javascript/packages/recommend
111+
key: |
112+
${{ env.CACHE_VERSION }}-${{
113+
hashFiles(
114+
'clients/algoliasearch-client-javascript/packages/recommend/**',
115+
'!clients/algoliasearch-client-javascript/packages/recommend/dist',
116+
'specs/bundled/recommend.yml'
117+
)}}
59118
60119
- name: Restore built JavaScript query-suggestions client
61120
if: ${{ inputs.job == 'cts' }}
62121
uses: actions/cache@v2
63122
with:
64-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-query-suggestions/dist
65-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-query-suggestions-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-query-suggestions/**') }}-${{ hashFiles('specs/bundled/query-suggestions.yml') }}
123+
path: clients/algoliasearch-client-javascript/packages/client-query-suggestions
124+
key: |
125+
${{ env.CACHE_VERSION }}-${{
126+
hashFiles(
127+
'clients/algoliasearch-client-javascript/packages/client-query-suggestions/**',
128+
'!clients/algoliasearch-client-javascript/packages/client-query-suggestions/dist',
129+
'specs/bundled/query-suggestions.yml'
130+
)}}
66131
67132
- name: Restore built JavaScript personalization client
68133
if: ${{ inputs.job == 'cts' }}
69134
uses: actions/cache@v2
70135
with:
71-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-personalization/dist
72-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-personalization-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-personalization/**') }}-${{ hashFiles('specs/bundled/personalization.yml') }}
136+
path: clients/algoliasearch-client-javascript/packages/client-personalization
137+
key: |
138+
${{ env.CACHE_VERSION }}-${{
139+
hashFiles(
140+
'clients/algoliasearch-client-javascript/packages/client-personalization/**',
141+
'!clients/algoliasearch-client-javascript/packages/client-personalization/dist',
142+
'specs/bundled/personalization.yml'
143+
)}}
73144
74145
- name: Restore built JavaScript analytics client
75146
if: ${{ inputs.job == 'cts' }}
76147
uses: actions/cache@v2
77148
with:
78-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-analytics/dist
79-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-analytics-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-analytics/**') }}-${{ hashFiles('specs/bundled/analytics.yml') }}
149+
path: clients/algoliasearch-client-javascript/packages/client-analytics
150+
key: |
151+
${{ env.CACHE_VERSION }}-${{
152+
hashFiles(
153+
'clients/algoliasearch-client-javascript/packages/client-analytics/**',
154+
'!clients/algoliasearch-client-javascript/packages/client-analytics/dist',
155+
'specs/bundled/analytics.yml'
156+
)}}
80157
81158
- name: Restore built JavaScript abtesting client
82159
if: ${{ inputs.job == 'cts' }}
83160
uses: actions/cache@v2
84161
with:
85-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-abtesting/dist
86-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-abtesting-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-abtesting/**') }}-${{ hashFiles('specs/bundled/abtesting.yml') }}
162+
path: clients/algoliasearch-client-javascript/packages/client-abtesting
163+
key: |
164+
${{ env.CACHE_VERSION }}-${{
165+
hashFiles(
166+
'clients/algoliasearch-client-javascript/packages/client-abtesting/**',
167+
'!clients/algoliasearch-client-javascript/packages/client-abtesting/dist',
168+
'specs/bundled/abtesting.yml'
169+
)}}
87170
88171
- name: Restore built JavaScript insights client
89172
if: ${{ inputs.job == 'cts' }}
90173
uses: actions/cache@v2
91174
with:
92-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-insights/dist
93-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-insights-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-insights/**') }}-${{ hashFiles('specs/bundled/insights.yml') }}
175+
path: clients/algoliasearch-client-javascript/packages/client-insights
176+
key: |
177+
${{ env.CACHE_VERSION }}-${{
178+
hashFiles(
179+
'clients/algoliasearch-client-javascript/packages/client-insights/**',
180+
'!clients/algoliasearch-client-javascript/packages/client-insights/dist',
181+
'specs/bundled/insights.yml'
182+
)}}
94183
95184
- name: Restore built JavaScript sources client
96185
if: ${{ inputs.job == 'cts' }}
97186
uses: actions/cache@v2
98187
with:
99-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-sources/dist
100-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-sources-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-sources/**') }}-${{ hashFiles('specs/bundled/sources.yml') }}
188+
path: clients/algoliasearch-client-javascript/packages/client-sources
189+
key: |
190+
${{ env.CACHE_VERSION }}-${{
191+
hashFiles(
192+
'clients/algoliasearch-client-javascript/packages/client-sources/**',
193+
'!clients/algoliasearch-client-javascript/packages/client-sources/dist',
194+
'specs/bundled/sources.yml'
195+
)}}
101196
102197
- name: Restore built JavaScript predict client
103198
if: ${{ inputs.job == 'cts' }}
104199
uses: actions/cache@v2
105200
with:
106-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-javascript/packages/client-predict/dist
107-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-js-client-predict-${{ hashFiles('clients/algoliasearch-client-javascript/packages/client-predict/**') }}-${{ hashFiles('specs/dist/predict.yml') }}
108-
201+
path: clients/algoliasearch-client-javascript/packages/client-predict
202+
key: |
203+
${{ env.CACHE_VERSION }}-${{
204+
hashFiles(
205+
'clients/algoliasearch-client-javascript/packages/client-predict/**',
206+
'!clients/algoliasearch-client-javascript/packages/client-predict/dist',
207+
'specs/bundled/predict.yml'
208+
)}}
209+
210+
# Restore Java clients: used during 'cts'
109211
- name: Restore built Java client
110212
if: ${{ inputs.job == 'cts' }}
111213
uses: actions/cache@v2
112214
with:
113-
path: /home/runner/work/api-clients-automation/api-clients-automation/clients/algoliasearch-client-java-2
114-
key: ${{ runner.os }}-${{ env.CACHE_VERSION }}-java-client-${{ hashFiles('clients/algoliasearch-client-java-2/**') }}-${{ hashFiles('specs/bundled/search.yml') }}
115-
116-
# setup yarn
117-
- name: Get yarn cache directory path
118-
shell: bash
119-
id: yarn-cache-dir
120-
run: echo "::set-output name=dir::$(yarn config get cacheFolder)"
121-
122-
- name: Restore Yarn
123-
uses: actions/cache@v2
124-
with:
125-
path: ${{ steps.yarn-cache-dir.outputs.dir || '/home/runner/work/api-clients-automation/api-clients-automation/.yarn/cache' }}
126-
key: node-cache-${{ env.CACHE_VERSION }}-${{ runner.os }}-yarn-${{ hashFiles('yarn.lock') }}
127-
128-
- name: Install JavaScript dependencies
129-
shell: bash
130-
run: yarn install
131-
132-
# Java setup
133-
- name: Download Java formatter
134-
if: ${{ inputs.language == 'java' || inputs.job == 'cts' }}
135-
shell: bash
136-
run: curl -L "https://github.com/google/google-java-format/releases/download/v1.13.0/google-java-format-1.13.0-all-deps.jar" > /tmp/java-formatter.jar
137-
138-
- name: Download openapi generator jar for java (TODO REMOVE)
139-
if: ${{ inputs.language == 'java' || inputs.job == 'cts' }}
140-
shell: bash
141-
run: curl -L "https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/5.4.0/openapi-generator-cli-5.4.0.jar" > /tmp/openapi-generator-cli.jar
215+
path: clients/algoliasearch-client-java-2
216+
key: |
217+
${{ env.CACHE_VERSION }}-${{
218+
hashFiles(
219+
'clients/algoliasearch-client-java-2/client-predict/**',
220+
'!clients/algoliasearch-client-java-2/client-predict/target',
221+
'specs/bundled/search.yml'
222+
)}}

0 commit comments

Comments
 (0)