feat: improve CI/CD and make config environment-aware
Some checks failed
CD - Build & Deploy / build-and-push (push) Has been cancelled
CD - Build & Deploy / package-helm (push) Has been cancelled
CD - Build & Deploy / deploy-staging (push) Has been cancelled
CD - Build & Deploy / deploy-production (push) Has been cancelled
CD - Build & Deploy / release (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / security (push) Has been cancelled
ci/woodpecker/push/woodpecker Pipeline failed
Some checks failed
CD - Build & Deploy / build-and-push (push) Has been cancelled
CD - Build & Deploy / package-helm (push) Has been cancelled
CD - Build & Deploy / deploy-staging (push) Has been cancelled
CD - Build & Deploy / deploy-production (push) Has been cancelled
CD - Build & Deploy / release (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / security (push) Has been cancelled
ci/woodpecker/push/woodpecker Pipeline failed
CI/CD Improvements (.woodpecker.yml): - Add build_args for VERSION, BUILD_DATE, PYTHON_VERSION, NODE_VERSION - Add OCI labels for better image metadata - Enable cache_from for faster builds - Enable provenance for supply chain security Configuration Improvements (rxconfig.py): - Make API_URL configurable via environment (was hardcoded localhost) - Make ports configurable via FRONTEND_PORT, BACKEND_PORT env vars - Make DATABASE_URL configurable via environment - Support both development (SQLite) and production (PostgreSQL) setups Benefits: - Better CI cache utilization - Proper image versioning and metadata - Easier deployment to different environments - No code changes needed for prod vs dev
This commit is contained in:
@@ -18,7 +18,26 @@ steps:
|
|||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
context: .
|
context: .
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
|
# Build arguments for Dockerfile
|
||||||
|
build_args:
|
||||||
|
- VERSION=${CI_COMMIT_SHA:0:8}
|
||||||
|
- BUILD_DATE=${CI_PIPELINE_CREATED}
|
||||||
|
- PYTHON_VERSION=3.11
|
||||||
|
- NODE_VERSION=20
|
||||||
|
# OCI labels for better metadata
|
||||||
|
labels:
|
||||||
|
- org.opencontainers.image.created=${CI_PIPELINE_CREATED}
|
||||||
|
- org.opencontainers.image.source=${CI_REPO_LINK}
|
||||||
|
- org.opencontainers.image.url=${CI_REPO_LINK}
|
||||||
|
- org.opencontainers.image.revision=${CI_COMMIT_SHA}
|
||||||
|
- org.opencontainers.image.version=${CI_COMMIT_SHA:0:8}
|
||||||
|
- org.opencontainers.image.title=Peikarband Landing
|
||||||
|
- org.opencontainers.image.description=Peikarband hosting platform landing page
|
||||||
|
# Cache optimization
|
||||||
cache: true
|
cache: true
|
||||||
|
cache_from: hub.peikarband.ir/peikarband/landing:latest
|
||||||
|
# Security & provenance
|
||||||
|
provenance: true
|
||||||
insecure: false
|
insecure: false
|
||||||
when:
|
when:
|
||||||
event: [push, tag, manual]
|
event: [push, tag, manual]
|
||||||
|
|||||||
15
rxconfig.py
15
rxconfig.py
@@ -3,14 +3,21 @@
|
|||||||
This file configures the Reflex application settings.
|
This file configures the Reflex application settings.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
import reflex as rx
|
import reflex as rx
|
||||||
|
|
||||||
|
# Environment-aware configuration
|
||||||
|
API_URL = os.getenv("API_URL", "http://localhost:8000")
|
||||||
|
FRONTEND_PORT = int(os.getenv("FRONTEND_PORT", "3000"))
|
||||||
|
BACKEND_PORT = int(os.getenv("BACKEND_PORT", "8000"))
|
||||||
|
DB_URL = os.getenv("DATABASE_URL", "sqlite:///reflex.db")
|
||||||
|
|
||||||
config = rx.Config(
|
config = rx.Config(
|
||||||
app_name="peikarband",
|
app_name="peikarband",
|
||||||
api_url="http://localhost:8000",
|
api_url=API_URL,
|
||||||
frontend_port=3000,
|
frontend_port=FRONTEND_PORT,
|
||||||
backend_port=8000,
|
backend_port=BACKEND_PORT,
|
||||||
db_url="sqlite:///reflex.db", # Temporary, will use PostgreSQL
|
db_url=DB_URL,
|
||||||
disable_plugins=["reflex.plugins.sitemap.SitemapPlugin"],
|
disable_plugins=["reflex.plugins.sitemap.SitemapPlugin"],
|
||||||
stylesheets=[
|
stylesheets=[
|
||||||
"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap",
|
"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap",
|
||||||
|
|||||||
Reference in New Issue
Block a user