@@ -166,6 +166,10 @@ jobs:
166
166
steps :
167
167
- uses : actions/download-artifact@v4
168
168
169
+ - name : Init purge keys file
170
+ run : |
171
+ touch purge_keys.txt
172
+
169
173
- name : Utils.sh
170
174
run : |
171
175
cat << 'EOF' > utils.sh
@@ -188,6 +192,7 @@ jobs:
188
192
purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
189
193
}
190
194
EOF
195
+
191
196
- name : Upload Precompiled to S3
192
197
run : |
193
198
source utils.sh
@@ -201,18 +206,19 @@ jobs:
201
206
aws s3 cp "${zip}" "s3://${AWS_S3_BUCKET}/builds/elixir/${dest}" \
202
207
--cache-control "public,max-age=3600" \
203
208
--metadata "{\"surrogate-key\":\"builds builds/elixir builds/elixir/${surrogate_key}\",\"surrogate-control\":\"public,max-age=604800\"}"
209
+ echo "builds/elixir/${surrogate_key}" >> purge_keys.txt
204
210
205
211
if [ "$zip" == "elixir-otp-${OTP_GENERIC_VERSION}.zip" ]; then
206
212
aws s3 cp "${zip}" "s3://${AWS_S3_BUCKET}/builds/elixir/${ref_name}.zip" \
207
213
--cache-control "public,max-age=3600" \
208
214
--metadata "{\"surrogate-key\":\"builds builds/elixir builds/elixir/${ref_name}\",\"surrogate-control\":\"public,max-age=604800\"}"
209
- purge builds/elixir/${ref_name}
215
+ echo builds/elixir/${ref_name} >> purge_keys.txt
210
216
fi
211
217
done
218
+
212
219
- name : Upload Docs to S3
213
220
working-directory : Docs
214
221
run : |
215
- source ../utils.sh
216
222
version=$(echo ${{ github.ref_name }} | sed -e 's/^v//g')
217
223
218
224
unzip Docs.zip
@@ -222,17 +228,17 @@ jobs:
222
228
app=$(echo "$f" | sed s/"doc\/"//)
223
229
tarball="${app}-${version}.tar.gz"
224
230
surrogate_key="docs/${app}-${version}"
231
+
225
232
tar -czf "${tarball}" -C "doc/${app}" .
226
233
aws s3 cp "${tarball}" "s3://${AWS_S3_BUCKET}/docs/${tarball}" \
227
234
--cache-control "public,max-age=3600" \
228
235
--metadata "{\"surrogate-key\":\"${surrogate_key}\",\"surrogate-control\":\"public,max-age=604800\"}"
229
- purge "${surrogate_key}"
236
+ echo "${surrogate_key}" >> purge_keys.txt
230
237
fi
231
238
done
232
239
233
240
- name : Update builds txt
234
241
run : |
235
- source utils.sh
236
242
date="$(date -u '+%Y-%m-%dT%H:%M:%SZ')"
237
243
ref_name=${{ github.ref_name }}
238
244
@@ -256,4 +262,32 @@ jobs:
256
262
aws s3 cp builds.txt "s3://${AWS_S3_BUCKET}/builds/elixir/builds.txt" \
257
263
--cache-control "public,max-age=3600" \
258
264
--metadata '{"surrogate-key":"builds builds/elixir builds/elixir/txt","surrogate-control":"public,max-age=604800"}'
259
- purge builds/elixir/txt
265
+
266
+ echo 'buils/elixir/txt' >> purge_keys.txt
267
+
268
+ - name : Flush cache
269
+ run : |
270
+ function purge_key() {
271
+ echo "Purge key $2"
272
+ # curl \
273
+ # -X POST \
274
+ # -H "Fastly-Key: ${FASTLY_KEY}" \
275
+ # -H "Accept: application/json" \
276
+ # -H "Content-Length: 0" \
277
+ # "https://api.fastly.com/service/$1/purge/$2"
278
+ }
279
+
280
+ function purge() {
281
+ purge_key ${FASTLY_REPO_SERVICE_ID} $1
282
+ purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
283
+ sleep 2
284
+ purge_key ${FASTLY_REPO_SERVICE_ID} $1
285
+ purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
286
+ sleep 2
287
+ purge_key ${FASTLY_REPO_SERVICE_ID} $1
288
+ purge_key ${FASTLY_BUILDS_SERVICE_ID} $1
289
+ }
290
+
291
+ for key in $(cat purge_keys.txt); do
292
+ purge "${key}"
293
+ done
0 commit comments