An automated CI/CD deployment failed when attempting to run php artisan cache:clear during a routine Ubuntu package update of redis-server.
# Wait for Redis to respond to PING with backoff before continuing deploy:
wait_for_redis() {
local retries=15
until redis-cli -h 127.0.0.1 ping | grep -q PONG || [ $retries -eq 0 ]; do
echo "Waiting for Redis to become available... ($retries retries left)"
retries=$((retries - 1))
sleep 2
done
[ $retries -gt 0 ]
}
wait_for_redis || { echo "Redis unreachable. Aborting deploy."; exit 1; }
Adding a ten-line retry wrapper in deploy shell scripts prevents intermittent service restart windows from triggering false-positive deployment rollbacks.