From 79799b66bb92edc94375be03013206d9d936a2a3 Mon Sep 17 00:00:00 2001 From: "Ehsan.Asadi" Date: Sat, 27 Dec 2025 23:26:12 +0330 Subject: [PATCH] added files --- woodpecker.yml | 86 +++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 67 insertions(+), 19 deletions(-) diff --git a/woodpecker.yml b/woodpecker.yml index 746f2c7..d8d4cc0 100644 --- a/woodpecker.yml +++ b/woodpecker.yml @@ -1,26 +1,61 @@ # Peikarband Platform - Woodpecker CI/CD Pipeline -# وضعیت: فقط بیلد و پوش به Harbor فعال است +# 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: Docker Build & Push (تنها بخش فعال) +# 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} - # تگ کردن تصویر با هش کامیت و کلمه latest tags: - ${CI_COMMIT_SHA:0:8} + - ${CI_COMMIT_BRANCH} - latest username: from_secret: harbor_username @@ -28,23 +63,17 @@ steps: from_secret: harbor_password build_args: - ENVIRONMENT=production - # استفاده از کش برای سرعت بیشتر در بیلدهای بعدی - cache_from: ${harbor_registry}/${image_name}:latest + - VERSION=${CI_COMMIT_SHA:0:8} + cache_from: + - ${harbor_registry}/${image_name}:latest + dockerfile: Dockerfile + dry_run: false when: - event: [push, tag] + event: [push, tag, manual] # ============================================ -# بخش‌های غیرفعال (کامنت شده) +# STAGE 5 - 11: Deployment & Notifications (DISABLED) # ============================================ - -# lint-python: -# image: python:3.11-slim -# commands: -# - pip install --no-cache-dir flake8 black -# - flake8 src/ -# when: -# branch: [main, develop] - # deploy-staging: # image: argoproj/argocd:latest # environment: @@ -54,7 +83,7 @@ steps: # - argocd app set peikarband-staging --helm-set image.tag=${CI_COMMIT_SHA:0:8} # - argocd app sync peikarband-staging # when: -# branch: [develop] +# branch: [develop, staging] # notify-telegram: # image: appleboy/drone-telegram:latest @@ -62,4 +91,23 @@ steps: # token: { from_secret: telegram_bot_token } # to: { from_secret: telegram_chat_id } # when: -# status: [success, failure] \ No newline at end of file +# 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 \ No newline at end of file