From eaff23eb7e9ff17aaf0c2853525ddbb6a79cbb9e Mon Sep 17 00:00:00 2001 From: "Ehsan.Asadi" Date: Sat, 27 Dec 2025 23:51:18 +0330 Subject: [PATCH] added files --- .woodpecker.yml | 194 +++++++++++++++++++++++++++--------------------- 1 file changed, 109 insertions(+), 85 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index 513c8e1..b93c656 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,53 +1,13 @@ -# Peikarband Platform - Woodpecker CI/CD Pipeline -# Complete production-ready pipeline - +# # 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"' + - event: [push, tag, manual] 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: @@ -55,7 +15,6 @@ steps: repo: ${harbor_registry}/${image_name} tags: - ${CI_COMMIT_SHA:0:8} - - ${CI_COMMIT_BRANCH} - latest username: from_secret: harbor_username @@ -63,51 +22,116 @@ steps: 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 + cache_from: ${harbor_registry}/${image_name}:latest when: event: [push, tag, manual] +# variables: +# - &harbor_registry 'harbor.peikarband.ir' +# - &image_name 'peikarband/landing' +# - &python_version '3.11' -# ============================================ -# 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] +# # Global configuration +# when: +# - evaluate: 'CI_PIPELINE_EVENT != "cron"' -# notify-telegram: -# image: appleboy/drone-telegram:latest -# settings: -# token: { from_secret: telegram_bot_token } -# to: { from_secret: telegram_chat_id } -# when: -# status: [success, failure] +# 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/*] -# ============================================ -# Services & Workspace Configuration -# ============================================ -# (سرویس‌ها فعلاً کامنت شدند چون تستی اجرا نمی‌شود) -# services: -# postgres: -# image: postgres:14-alpine +# # lint-yaml: +# # image: cytopia/yamllint:latest +# # commands: +# # - yamllint -c .yamllint.yml helm/ || true +# # - yamllint woodpecker.yml +# # when: +# # branch: [main, develop, staging] -workspace: - base: /woodpecker/src - path: workspace +# # ============================================ +# # 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] -clone: - git: - image: woodpeckerci/plugin-git:latest - settings: - depth: 50 - tags: true +# # ============================================ +# # 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