- Implement test jobs with Python 3.11 and 3.12 matrix support - Configure services for PostgreSQL and Redis with health checks - Include code formatting, linting, type checking, and security scanning steps - Add unit and integration tests with coverage reporting and upload - Integrate SonarCloud scanning for code quality assurance - Add security scanning jobs with Trivy and dependency checks - Automate Docker image building with metadata extraction and multi-platform support - Generate and upload software bill of materials (SBOM) - Include container security scan using Trivy for built images - Define deployment workflows for staging and production with kubectl - Perform smoke tests and health checks after deployment - Send deployment notifications to Slack channels - Automate GitHub release creation on tagged commits - Add cleanup job to remove old container image versions - Support manual deployment dispatch with environment choice input
53 lines
1006 B
INI
53 lines
1006 B
INI
# Alembic configuration file for Discord Quote Bot
|
|
|
|
[alembic]
|
|
# Path to migration scripts
|
|
script_location = migrations
|
|
|
|
# Template used to generate migration files
|
|
file_template = %%(year)d%%(month).2d%%(day).2d_%%(hour).2d%%(minute).2d_%%(rev)s_%%(slug)s
|
|
|
|
# Timezone for migration timestamps
|
|
timezone = UTC
|
|
|
|
# Truncate slug to 40 chars
|
|
truncate_slug_length = 40
|
|
|
|
# Revision identifier format
|
|
revision_environment = false
|
|
sqlalchemy.url = postgresql://quotes_user:secure_password@localhost:5432/quotes_db
|
|
|
|
# Logging configuration
|
|
[loggers]
|
|
keys = root,sqlalchemy,alembic
|
|
|
|
[handlers]
|
|
keys = console
|
|
|
|
[formatters]
|
|
keys = generic
|
|
|
|
[logger_root]
|
|
level = WARN
|
|
handlers = console
|
|
qualname =
|
|
|
|
[logger_sqlalchemy]
|
|
level = WARN
|
|
handlers =
|
|
qualname = sqlalchemy.engine
|
|
|
|
[logger_alembic]
|
|
level = INFO
|
|
handlers =
|
|
qualname = alembic
|
|
|
|
[handler_console]
|
|
class = StreamHandler
|
|
args = (sys.stderr,)
|
|
level = NOTSET
|
|
formatter = generic
|
|
|
|
[formatter_generic]
|
|
format = %(levelname)-5.5s [%(name)s] %(message)s
|
|
datefmt = %H:%M:%S |