@@ -49,10 +49,12 @@ case "$environment" in
49
49
" production" )
50
50
repository_server_upload_domain=" $PRODUCTION_REPOSITORY_SERVER "
51
51
repository_server_public_url=" $PRODUCTION_LINUX_REPOSITORY_PUBLIC_URL "
52
+ bunnycdn_pull_zone_id=" $PRODUCTION_BUNNYCDN_PULL_ZONE_ID "
52
53
;;
53
54
" staging" )
54
55
repository_server_upload_domain=" $STAGING_REPOSITORY_SERVER "
55
56
repository_server_public_url=" $STAGING_LINUX_REPOSITORY_PUBLIC_URL "
57
+ bunnycdn_pull_zone_id=" $STAGING_BUNNYCDN_PULL_ZONE_ID "
56
58
;;
57
59
" dev" )
58
60
repository_server_upload_domain=" $DEV_REPOSITORY_SERVER "
@@ -144,6 +146,16 @@ function rsync_repo {
144
146
build@" $repository_server_upload_domain " :" $remote_repo_dir "
145
147
}
146
148
149
+ function invalidate_bunny_cdn_cache {
150
+ local pull_zone_id=$1
151
+ curl --request POST \
152
+ --url " https://api.bunny.net/pullzone/${pull_zone_id} /purgeCache" \
153
+ --header " AccessKey: ${BUNNYCDN_API_KEY} " \
154
+ --header ' content-type: application/json' \
155
+ --fail-with-body
156
+ }
157
+
158
+ repositories_were_updated=" false"
147
159
for repository in " ${REPOSITORIES[@]} " ; do
148
160
deb_remote_repo_dir=" deb/$repository "
149
161
rpm_remote_repo_dir=" rpm/$repository "
@@ -183,4 +195,13 @@ for repository in "${REPOSITORIES[@]}"; do
183
195
echo " [#] Syncing rpm repository to $rpm_remote_repo_dir "
184
196
rsync_repo " $rpm_repo_dir " " $rpm_remote_repo_dir "
185
197
198
+ echo " [#] ==== Done updating $repository in $environment ===="
199
+ repositories_were_updated=" true"
186
200
done
201
+
202
+ if [[ " $repositories_were_updated " == " true" ]]; then
203
+ if [[ " $environment " == " production" || " $environment " == " staging" ]]; then
204
+ echo " [#] Invalidating Bunny CDN cache for pull zone $bunnycdn_pull_zone_id "
205
+ invalidate_bunny_cdn_cache " $bunnycdn_pull_zone_id "
206
+ fi
207
+ fi
0 commit comments