diff --git a/.github/actions/publish-docs.sh b/.github/actions/publish-docs.sh index 5593d26c00..0d133daca5 100755 --- a/.github/actions/publish-docs.sh +++ b/.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=$? diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 8208b82edf..22e5a72a0b 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.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 }}"