From 6852f586eaf3eb69c7d6260c9ea8386b17136476 Mon Sep 17 00:00:00 2001 From: Amruth Pillai Date: Fri, 29 May 2026 01:44:30 +0200 Subject: [PATCH] ci: purge Cloudflare cache after release Docker image deploy (#3122) * ci: purge Cloudflare cache after release Docker image deploy Co-authored-by: Amruth Pillai * ci: add timeout and retries to Cloudflare cache purge Co-authored-by: Amruth Pillai --------- Co-authored-by: Cursor Agent --- .github/workflows/docker-build.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index af30acee4..88a66a97f 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -249,3 +249,24 @@ jobs: script: | cd docker ./manage_stack.sh up reactive_resume + + - name: Purge Cloudflare cache + if: ${{ needs.mode.outputs.release == 'true' }} + env: + CLOUDFLARE_ZONE_ID: ${{ secrets.CLOUDFLARE_ZONE_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + run: | + set -euo pipefail + + response=$(curl -fsS --max-time 10 --retry 3 --retry-delay 5 --retry-connrefused -X POST \ + "https://api.cloudflare.com/client/v4/zones/${CLOUDFLARE_ZONE_ID}/purge_cache" \ + -H "Authorization: Bearer ${CLOUDFLARE_API_TOKEN}" \ + -H "Content-Type: application/json" \ + --data '{"purge_everything":true}') + + if [ "$(jq -r '.success' <<< "$response")" != "true" ]; then + echo "$response" | jq . + exit 1 + fi + + echo "Cloudflare cache purged successfully."