A deployment script that aborted when redis-server was updating

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.