{
  "title": "بلوپرینت چرخه انتشار",
  "slug": "team/devops/release-lifecycle-blueprint",
  "url": "/docs/team/devops/release-lifecycle-blueprint",
  "frontmatter": {
    "layout": "doc",
    "title": "بلوپرینت چرخه انتشار",
    "description": "بلوپرینت معماری چرخه انتشار نرم‌افزار — از توسعه تا استقرار و تأیید",
    "version": "1.0.0",
    "status": "BLUEPRINT",
    "author": "Antigravity",
    "owner": "Devops Team",
    "created_at": "2026-06-15",
    "updated_at": "2026-06-15",
    "tags": "",
    "reviewers": ""
  },
  "sections": [
    {
      "level": 1,
      "heading": "بلوپرینت چرخه انتشار",
      "content": "**Release Lifecycle Blueprint**\n\n---"
    },
    {
      "level": 2,
      "heading": "۱. مراحل چرخه",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۱.۱ نمای کلی",
      "content": "```mermaid\nflowchart LR\n    Dev[\"توسعه<br/>Development\"] --> Val[\"اعتبارسنجی<br/>Validation\"]\n    Val --> Build[\"ساخت<br/>Build\"]\n    Build --> Reg[\"ثبت<br/>Registry\"]\n    Reg --> Deploy[\"استقرار<br/>Deployment\"]\n    Deploy --> Verify[\"تأیید<br/>Verification\"]\n    Verify -->|پایدار| Release[\"انتشار نهایی<br/>Release\"]\n    Verify -->|نقص| Dev\n```"
    },
    {
      "level": 3,
      "heading": "۱.۲ شرح هر مرحله",
      "content": "| مرحله | ورودی | خروجی | مالک |\n|-------|-------|-------|------|\n| **توسعه** | Task/Issue در GitHub | Pull Request + Code Review | Backend Team |\n| **اعتبارسنجی** | Pull Request merged | تست‌های خودکار (lint, unit, integration) | CI (GitHub Actions) |\n| **ساخت** | Commit به `main` | Container Image + SHA Tag | CI |\n| **ثبت** | Container Image | Image در `ghcr.io/nons/*` | CI |\n| **استقرار** | Image Tag + Helm Values | Running Pod در K3s | CD / Devops |\n| **تأیید** | Pod Running | Health Check + E2E Tests | CI / Devops |\n| **انتشار** | تأیید در Staging | Git Tag + Release Image + Changelog | Devops |\n\n---"
    },
    {
      "level": 2,
      "heading": "۲. توسعه (Development)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۲.۱ گردش کار توسعه‌دهنده",
      "content": "```text\n1. Branch ایجاد کن: feat/order-status-webhook\n2. کد بزن + تست بنویس\n3. Pull Request به main باز کن\n4. CI: lint + build + test (unit + integration)\n5. تیم review کند\n6. Merge به main\n```"
    },
    {
      "level": 3,
      "heading": "۲.۲ قوانین",
      "content": "| قانون | جزئیات |\n|-------|--------|\n| نام برنچ | `feat/*`, `fix/*`, `chore/*`, `refactor/*` |\n| محافظت main | Protected Branch — نیاز به review + CI پاس |\n| PR size | ترجیحاً زیر ۴۰۰ خط |\n| Commit message | Conventional Commits (`feat:`, `fix:`, `chore:`) |\n\n---"
    },
    {
      "level": 2,
      "heading": "۳. اعتبارسنجی (Validation)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۳.۱ Pipeline اعتبارسنجی",
      "content": "```text\nPR opened / updated\n  ↓\nLint (ESLint / golangci-lint)\n  ↓\nType Check (TypeScript / Go compile)\n  ↓\nUnit Tests\n  ↓\nIntegration Tests (با K3d)\n  ↓\nBuild Test (Docker build بدون push)\n  ↓\n✅ Green → Merge مجاز\n❌ Red  → Fix required\n```"
    },
    {
      "level": 3,
      "heading": "۳.۲ قوانین",
      "content": "| مرحله | در PR | در merge به main |\n|-------|-------|-----------------|\n| Lint | ✅ | ✅ |\n| Type Check | ✅ | ✅ |\n| Unit Tests | ✅ | ✅ |\n| Integration Tests | ✅ | ✅ |\n| Build | ✅ (بدون push) | ✅ (با push) |\n| Image Push | ❌ | ✅ |\n| Deploy | ❌ | فقط Staging |\n\n---"
    },
    {
      "level": 2,
      "heading": "۴. ساخت (Build)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۴.۱ Pipeline ساخت",
      "content": "```bash"
    },
    {
      "level": 1,
      "heading": "برای هر commit به main",
      "content": "docker build -t ghcr.io/nons/{service}:sha-${GITHUB_SHA::8} .\ndocker push ghcr.io/nons/{service}:sha-${GITHUB_SHA::8}"
    },
    {
      "level": 1,
      "heading": "برای Git Tag v* (Release)",
      "content": "docker build -t ghcr.io/nons/{service}:{version} .\ndocker push ghcr.io/nons/{service}:{version}\ndocker tag ... {service}:latest\ndocker push ... latest\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۵. ثبت (Registry)",
      "content": "تصاویر به `ghcr.io/nons/*`推送 می‌شوند. جزئیات کامل در [Container Delivery Architecture](./container-delivery-architecture.md).\n\n---"
    },
    {
      "level": 2,
      "heading": "۶. استقرار (Deployment)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۶.۱ مدل استقرار",
      "content": "```text\nStaging: خودکار — هر commit به main\nProduction: دستی — با تأیید تیم\n```"
    },
    {
      "level": 3,
      "heading": "۶.۲ فرمان استقرار Staging",
      "content": "```bash\nhelm upgrade {release} ./deploy/helm/{service} \\\n  --set image.tag=sha-${GITHUB_SHA::8} \\\n  -n nons-platform \\\n  -f ./deploy/environments/staging/values.yaml\n```"
    },
    {
      "level": 3,
      "heading": "۶.۳ فرمان استقرار Production",
      "content": "```bash\nhelm upgrade {release} ./deploy/helm/{service} \\\n  --set image.tag=${VERSION} \\\n  -n nons-platform \\\n  -f ./deploy/environments/production/values.yaml\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۷. تأیید (Verification)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۷.۱ Post-Deployment Checks",
      "content": "```bash"
    },
    {
      "level": 1,
      "heading": "Health Check",
      "content": "curl -f http://localhost/v1/auth/health"
    },
    {
      "level": 1,
      "heading": "Pod Status",
      "content": "kubectl rollout status deployment/{service} -n nons-platform"
    },
    {
      "level": 1,
      "heading": "Logs (بدون خطا)",
      "content": "kubectl logs -l app={service} -n nons-platform --tail=50\n```"
    },
    {
      "level": 3,
      "heading": "۷.۲ E2E Tests",
      "content": "پس از استقرار به Staging، تست‌های E2E اجرا می‌شوند:\n\n```bash"
    },
    {
      "level": 1,
      "heading": "E2E Test Suite",
      "content": "pnpm test:e2e --service={service}\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۸. انتشار نهایی (Release)",
      "content": ""
    },
    {
      "level": 3,
      "heading": "۸.۱ فرمان انتشار",
      "content": "```bash"
    },
    {
      "level": 1,
      "heading": "1. Git Tag",
      "content": "git tag auth-service/v1.2.0\ngit push origin auth-service/v1.2.0"
    },
    {
      "level": 1,
      "heading": "2. Build Release Image",
      "content": "docker build -t ghcr.io/nons/auth-service:1.2.0 .\ndocker push ghcr.io/nons/auth-service:1.2.0"
    },
    {
      "level": 1,
      "heading": "3. Tag as latest",
      "content": "docker tag ghcr.io/nons/auth-service:1.2.0 ghcr.io/nons/auth-service:latest\ndocker push ghcr.io/nons/auth-service:latest"
    },
    {
      "level": 1,
      "heading": "4. Create GitHub Release (manual or CI)",
      "content": "gh release create auth-service/v1.2.0 --title \"Auth Service v1.2.0\" --notes \"...\""
    },
    {
      "level": 1,
      "heading": "5. Deploy to Production",
      "content": "helm upgrade nons-auth-service ./deploy/helm/auth-service \\\n  --set image.tag=1.2.0 \\\n  -n nons-platform \\\n  -f ./deploy/environments/production/values.yaml\n```"
    },
    {
      "level": 3,
      "heading": "۸.۲ Changelog",
      "content": "هر Release باید CHANGELOG به‌روز شده داشته باشد:\n\n```markdown"
    },
    {
      "level": 1,
      "heading": "Changelog — Auth Service",
      "content": ""
    },
    {
      "level": 2,
      "heading": "[1.2.0] - 2026-06-15",
      "content": ""
    },
    {
      "level": 3,
      "heading": "Added",
      "content": "- Webhook endpoint for order status changes"
    },
    {
      "level": 3,
      "heading": "Fixed",
      "content": "- Rate limiting bypass on /health endpoint"
    },
    {
      "level": 3,
      "heading": "Security",
      "content": "- Updated Go dependencies for CVE-2026-XXXX\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۹. چرخه سریع (Hotfix)",
      "content": "برای رفع باگ‌های بحرانی در Production:\n\n```text\n1. Branch از آخرین Release Tag: git checkout -b hotfix/auth-service-1.2.1 auth-service/v1.2.0\n2. Fix commit\n3. PR به main + backport به hotfix branch\n4. CI: lint + test + build\n5. Git Tag: auth-service/v1.2.1\n6. Deploy مستقیم به Production\n7. Merge به main\n```\n\n---"
    },
    {
      "level": 2,
      "heading": "۱۰. خلاصه",
      "content": "| مرحله | خودکار | دستی | مسئول |\n|-------|--------|------|--------|\n| توسعه | ❌ | ✅ | Backend Team |\n| PR Validation | ✅ | ❌ | CI |\n| Build (SHA) | ✅ | ❌ | CI |\n| پوش به Registry | ✅ | ❌ | CI |\n| استقرار Staging | ✅ | ❌ | CI |\n| تأیید Staging | ✅ | ❌ | CI |\n| استقرار Production | ❌ | ✅ | Devops |\n| Release (Tag) | ❌ | ✅ | Devops |\n| Hotfix | ❌ | ✅ | Devops |"
    }
  ]
}