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:
badblocks 2025-06-06 14:38:23 -07:00
parent 46619bd5e1
commit f20c4f9474
No known key found for this signature in database
14 changed files with 719 additions and 233 deletions

View file

@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "pkmntrade-club"
version = "0.1.0"
dynamic = ["version"]
description = "A django project for trading Pokémon TCG Pocket Cards"
readme = "README.md"
requires-python = ">=3.12"
@ -69,6 +69,7 @@ dependencies = [
"typing-extensions==4.9.0",
"urllib3==1.26.14",
"whitenoise==6.7.0",
"django-parler>=2.3",
]
[project.scripts]
@ -79,3 +80,8 @@ Homepage = "https://pkmntrade.club"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools_scm]
version_scheme = "no-guess-dev"
tag_regex = "^v(?P<version>[0-9]+(?:\\.[0-9]+)*(?:-.*)?)"
fallback_version = "0.0.0+unknown"