diff options
| author | Linus Färnstrand <linus@mullvad.net> | 2025-03-20 13:49:36 +0100 |
|---|---|---|
| committer | Linus Färnstrand <linus@mullvad.net> | 2025-03-20 13:49:36 +0100 |
| commit | 1cb7935700827140f6430030033549c4d5cb2fb1 (patch) | |
| tree | 6d5affc34d1b1d89d96a7bd1fba1269582ccf7ca /ci | |
| parent | 1c7d7a28e70bb9521f85585eaa9f02b51749e46b (diff) | |
| parent | 2fd45ad381a88f5858c759466919a83235082d52 (diff) | |
| download | mullvadvpn-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.sh | 4 | ||||
| -rwxr-xr-x | ci/linux-repository-builder/build-linux-repositories.sh | 21 |
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 |
