# # Peikarband Platform - Woodpecker CI/CD Pipeline # # Complete production-ready pipeline # variables: # - &harbor_registry 'harbor.peikarband.ir' # - &image_name 'peikarband/landing' # - &python_version '3.11' # # Global configuration # when: # - evaluate: 'CI_PIPELINE_EVENT != "cron"' # steps: # # ============================================ # # STAGE 1: Code Quality & Linting (DISABLED) # # ============================================ # # lint-python: # # image: python:${python_version}-slim # # environment: # # - PYTHONPATH=/woodpecker/src/workspace # # commands: # # - pip install --no-cache-dir flake8 black isort mypy # # - flake8 src/ --max-line-length=120 --exclude=__pycache__,migrations --statistics # # - black --check src/ --line-length=120 # # - isort --check-only src/ # # when: # # branch: [main, develop, staging, feature/*, hotfix/*] # # lint-yaml: # # image: cytopia/yamllint:latest # # commands: # # - yamllint -c .yamllint.yml helm/ || true # # - yamllint woodpecker.yml # # when: # # branch: [main, develop, staging] # # ============================================ # # STAGE 2 & 3: Tests & Security (DISABLED) # # ============================================ # # test-unit: # # image: python:${python_version}-slim # # commands: # # - pip install --no-cache-dir -r requirements.txt # # - pytest tests/unit/ # # when: # # branch: [main, develop] # # ============================================ # # STAGE 4: Docker Build & Push (ACTIVE) # # ============================================ # docker-build: # image: plugins/docker # settings: # registry: *harbor_registry # repo: ${harbor_registry}/${image_name} # tags: # - ${CI_COMMIT_SHA:0:8} # - ${CI_COMMIT_BRANCH} # - latest # username: # from_secret: harbor_username # password: # from_secret: harbor_password # build_args: # - ENVIRONMENT=production # - VERSION=${CI_COMMIT_SHA:0:8} # cache_from: # - ${harbor_registry}/${image_name}:latest # dockerfile: Dockerfile # dry_run: false # when: # event: [push, tag, manual] # # ============================================ # # STAGE 5 - 11: Deployment & Notifications (DISABLED) # # ============================================ # # deploy-staging: # # image: argoproj/argocd:latest # # environment: # # ARGOCD_SERVER: { from_secret: argocd_server } # # ARGOCD_AUTH_TOKEN: { from_secret: argocd_token } # # commands: # # - argocd app set peikarband-staging --helm-set image.tag=${CI_COMMIT_SHA:0:8} # # - argocd app sync peikarband-staging # # when: # # branch: [develop, staging] # # notify-telegram: # # image: appleboy/drone-telegram:latest # # settings: # # token: { from_secret: telegram_bot_token } # # to: { from_secret: telegram_chat_id } # # when: # # status: [success, failure] # # ============================================ # # Services & Workspace Configuration # # ============================================ # # (سرویس‌ها فعلاً کامنت شدند چون تستی اجرا نمی‌شود) # # services: # # postgres: # # image: postgres:14-alpine # workspace: # base: /woodpecker/src # path: workspace # clone: # git: # image: woodpeckerci/plugin-git:latest # settings: # depth: 50 # tags: true # فایل تست بسیار ساده - تمام بخش‌های قبلی را پاک کن و فقط این را بگذار steps: test-build: image: alpine commands: - echo "Testing Woodpecker Connection..." - date