Skip to content

Commit

Permalink
Bust cloudflare cache
Browse files Browse the repository at this point in the history
  • Loading branch information
timacdonald committed Jul 9, 2024
1 parent b0b5642 commit 393d2e0
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 11 deletions.
3 changes: 2 additions & 1 deletion app/Console/Kernel.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\Config;

class Kernel extends ConsoleKernel
{
Expand All @@ -26,7 +27,7 @@ protected function schedule(Schedule $schedule)
{
$schedule->command('sitemap:generate')->daily();
$schedule->exec('bash /home/forge/laravel.com/build/api.sh')->daily();
$schedule->exec('bash /home/forge/laravel.com/build/docs.sh')->everyFiveMinutes();
$schedule->exec('bash /home/forge/laravel.com/build/docs.sh', Config::get(['services.cloudflare.zone', 'services.cloudflare.token']))->everyFiveMinutes();
}

/**
Expand Down
43 changes: 33 additions & 10 deletions build/docs.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,37 @@
#!/bin/bash

set -e

base=${base:-/home/forge/laravel.com}
docs=${base}/resources/docs
hashes=${base}/build/hashes
versions=('8.x' '9.x' '10.x' '11.x' 'master')
shouldBustCache=0

for v in "${versions[@]}"
do
# Update repositories...
cd "${docs}/${v}"
git pull origin "${v}"

# Calculate md5 of the pulled markdown files and compare to the previous...
find "." -type f -name "*.md" | xargs md5sum > "${hashes}/${v}.pulled"
if ! cmp -s "${hashes}/${v}.pulled" "${hashes}/${v}.previous"; then
shouldBustCache=1
fi
done

# Bust the Cloudflare cache...
if [[ $shouldBustCache == 1 ]]; then
curl -X POST \
"https://api.cloudflare.com/client/v4/zones/${1}/purge_cache" \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer ${2}" \
-d '{ "purge_everything": true }'
fi

# cd ${docs}/5.5 && git pull origin 5.5
# cd ${docs}/5.8 && git pull origin 5.8
# cd ${docs}/6.0 && git pull origin 6.0
# cd ${docs}/6.x && git pull origin 6.x
# cd ${docs}/7.x && git pull origin 7.x
cd ${docs}/8.x && git pull origin 8.x
cd ${docs}/9.x && git pull origin 9.x
cd ${docs}/10.x && git pull origin 10.x
cd ${docs}/11.x && git pull origin 11.x
cd ${docs}/master && git pull origin master
# Mark pulled files as the previous files...
for v in "${versions[@]}"
do
mv -f "${hashes}/${v}.pulled" "${hashes}/${v}.previous"
done
2 changes: 2 additions & 0 deletions build/hashes/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*
!.gitignore
4 changes: 4 additions & 0 deletions config/services.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,8 @@
'token' => env('WORKABLE_TOKEN'),
],

'cloudflare' => [
'zone' => env('CLOUDFLARE_ZONE'),
'token' => env('CLOUDFLARE_TOKEN'),
],
];

0 comments on commit 393d2e0

Please sign in to comment.