feat: add dynamic versioning and automated deployment with rollback capability
- Implement setuptools-scm for dynamic version management from git tags - Refactor CI/CD into separate build and deploy jobs with artifact sharing - Add versioned releases with timestamp-based deployment directories - Implement health checks and automatic rollback on deployment failure - Extract deployment logic into reusable shell scripts - Add Docker layer caching to speed up builds - Include version info in Django context and build args
This commit is contained in:
parent
46619bd5e1
commit
f20c4f9474
14 changed files with 719 additions and 233 deletions
23
scripts/retry.sh
Normal file
23
scripts/retry.sh
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Retry function with exponential backoff
|
||||
# Usage: source retry.sh && retry <command>
|
||||
|
||||
retry() {
|
||||
local max_attempts=3
|
||||
local delay=5
|
||||
local attempt=1
|
||||
|
||||
until "$@"; do
|
||||
if [ "$attempt" -ge "$max_attempts" ]; then
|
||||
echo "Command failed after $max_attempts attempts: $*"
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Command failed (attempt $attempt/$max_attempts): $*"
|
||||
echo "Retrying in $delay seconds..."
|
||||
sleep "$delay"
|
||||
attempt=$((attempt + 1))
|
||||
delay=$((delay * 2)) # Exponential backoff
|
||||
done
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue