summaryrefslogtreecommitdiffhomepage
path: root/ci
diff options
context:
space:
mode:
authorLinus Färnstrand <linus@mullvad.net>2025-03-20 13:49:36 +0100
committerLinus Färnstrand <linus@mullvad.net>2025-03-20 13:49:36 +0100
commit1cb7935700827140f6430030033549c4d5cb2fb1 (patch)
tree6d5affc34d1b1d89d96a7bd1fba1269582ccf7ca /ci
parent1c7d7a28e70bb9521f85585eaa9f02b51749e46b (diff)
parent2fd45ad381a88f5858c759466919a83235082d52 (diff)
downloadmullvadvpn-1cb7935700827140f6430030033549c4d5cb2fb1.tar.xz
mullvadvpn-1cb7935700827140f6430030033549c4d5cb2fb1.zip
Merge branch 'invalidate-cdn-cache-on-linux-repo-upload'
Diffstat (limited to 'ci')
-rw-r--r--ci/linux-repository-builder/build-linux-repositories-config.sh4
-rwxr-xr-xci/linux-repository-builder/build-linux-repositories.sh21
2 files changed, 25 insertions, 0 deletions
diff --git a/ci/linux-repository-builder/build-linux-repositories-config.sh b/ci/linux-repository-builder/build-linux-repositories-config.sh
index 9d8e2d923d..1c6dfd6bfd 100644
--- a/ci/linux-repository-builder/build-linux-repositories-config.sh
+++ b/ci/linux-repository-builder/build-linux-repositories-config.sh
@@ -30,3 +30,7 @@ export DEV_LINUX_REPOSITORY_PUBLIC_URL="https://repository.devmole.eu"
export PRODUCTION_REPOSITORY_SERVER="cdn.mullvad.net"
export STAGING_REPOSITORY_SERVER="cdn.stagemole.eu"
export DEV_REPOSITORY_SERVER="cdn.devmole.eu"
+
+#export PRODUCTION_BUNNYCDN_PULL_ZONE_ID="PLEASE CONFIGURE ME"
+#export STAGING_BUNNYCDN_PULL_ZONE_ID="PLEASE CONFIGURE ME"
+#export BUNNYCDN_API_KEY="PLEASE CONFIGURE ME"
diff --git a/ci/linux-repository-builder/build-linux-repositories.sh b/ci/linux-repository-builder/build-linux-repositories.sh
index f39b06a47c..2fe9ad5c10 100755
--- a/ci/linux-repository-builder/build-linux-repositories.sh
+++ b/ci/linux-repository-builder/build-linux-repositories.sh
@@ -49,10 +49,12 @@ case "$environment" in
"production")
repository_server_upload_domain="$PRODUCTION_REPOSITORY_SERVER"
repository_server_public_url="$PRODUCTION_LINUX_REPOSITORY_PUBLIC_URL"
+ bunnycdn_pull_zone_id="$PRODUCTION_BUNNYCDN_PULL_ZONE_ID"
;;
"staging")
repository_server_upload_domain="$STAGING_REPOSITORY_SERVER"
repository_server_public_url="$STAGING_LINUX_REPOSITORY_PUBLIC_URL"
+ bunnycdn_pull_zone_id="$STAGING_BUNNYCDN_PULL_ZONE_ID"
;;
"dev")
repository_server_upload_domain="$DEV_REPOSITORY_SERVER"
@@ -144,6 +146,16 @@ function rsync_repo {
build@"$repository_server_upload_domain":"$remote_repo_dir"
}
+function invalidate_bunny_cdn_cache {
+ local pull_zone_id=$1
+ curl --request POST \
+ --url "https://api.bunny.net/pullzone/${pull_zone_id}/purgeCache" \
+ --header "AccessKey: ${BUNNYCDN_API_KEY}" \
+ --header 'content-type: application/json' \
+ --fail-with-body
+}
+
+repositories_were_updated="false"
for repository in "${REPOSITORIES[@]}"; do
deb_remote_repo_dir="deb/$repository"
rpm_remote_repo_dir="rpm/$repository"
@@ -183,4 +195,13 @@ for repository in "${REPOSITORIES[@]}"; do
echo "[#] Syncing rpm repository to $rpm_remote_repo_dir"
rsync_repo "$rpm_repo_dir" "$rpm_remote_repo_dir"
+ echo "[#] ==== Done updating $repository in $environment ===="
+ repositories_were_updated="true"
done
+
+if [[ "$repositories_were_updated" == "true" ]]; then
+ if [[ "$environment" == "production" || "$environment" == "staging" ]]; then
+ echo "[#] Invalidating Bunny CDN cache for pull zone $bunnycdn_pull_zone_id"
+ invalidate_bunny_cdn_cache "$bunnycdn_pull_zone_id"
+ fi
+fi