Browse Source

invalidate CDN cache after full build

Dan Allen 2 years ago
parent
commit
c9ee194832
2 changed files with 10 additions and 3 deletions
  1. 9 2
      .github/actions/publish-docs.sh
  2. 1 1
      .github/workflows/deploy-docs.yml

+ 9 - 2
.github/actions/publish-docs.sh

@@ -5,10 +5,12 @@ HOST="$1"
 HOST_PATH="$2"
 SSH_PRIVATE_KEY="$3"
 SSH_KNOWN_HOST="$4"
+CLOUDFLARE_ZONE_ID="$5"
+CLOUDFLARE_CACHE_TOKEN="$6"
 SSH_PRIVATE_KEY_PATH="$HOME/.ssh/${GITHUB_REPOSITORY:-publish-docs}"
 
-if [ "$#" -ne 4 ]; then
-  echo -e "not enough arguments USAGE:\n\n$0 \$HOST \$HOST_PATH \$SSH_PRIVATE_KEY \$SSH_KNOWN_HOST\n\n" >&2
+if [ "$#" -ne 6 ]; then
+  echo -e "not enough arguments USAGE:\n\n$0 \$HOST \$HOST_PATH \$SSH_PRIVATE_KEY \$SSH_KNOWN_HOST \$CLOUDFLARE_ZONE_ID \$CLOUDFLARE_CACHE_TOKEN\n\n" >&2
   exit 1
 fi
 
@@ -28,6 +30,11 @@ fi
     RSYNC_OPTS="$RSYNC_OPTS$(find $FROM -mindepth 1 -maxdepth 1 -type d \! -name _ -printf ' --include /%P --include /%P/**') --exclude **"
   fi
   rsync $RSYNC_OPTS -e "ssh -i $SSH_PRIVATE_KEY_PATH" $FROM/ "$HOST:$HOST_PATH"
+  if [ -z "$BUILD_REFNAME" ]; then
+    curl -X POST "https://api.cloudflare.com/client/v4/zones/$CLOUDFLARE_ZONE_ID/purge_cache" \
+      -H "Content-Type:application/json" -H "Authorization: Bearer $CLOUDFLARE_CACHE_TOKEN" \
+      --data '{"files":["https://docs.spring.io/spring-security"]}'
+  fi
 )
 exit_code=$?
 

+ 1 - 1
.github/workflows/deploy-docs.yml

@@ -37,4 +37,4 @@ jobs:
     - name: Run Antora
       run: ./gradlew antora
     - name: Publish Docs
-      run: ${GITHUB_WORKSPACE}/.github/actions/publish-docs.sh "${{ secrets.DOCS_USERNAME }}@${{ secrets.DOCS_HOST }}" /opt/www/domains/spring.io/docs/htdocs/spring-security/reference/ "${{ secrets.DOCS_SSH_KEY }}" "${{ secrets.DOCS_SSH_HOST_KEY }}"
+      run: $GITHUB_WORKSPACE/.github/actions/publish-docs.sh "${{ secrets.DOCS_USERNAME }}@${{ secrets.DOCS_HOST }}" /opt/www/domains/spring.io/docs/htdocs/spring-security/reference/ "${{ secrets.DOCS_SSH_KEY }}" "${{ secrets.DOCS_SSH_HOST_KEY }}" "${{ secrets.CLOUDFLARE_ZONE_ID }}" "${{ secrets.CLOUDFLARE_CACHE_TOKEN }}"