تحلیل خودکار عملکرد ساخت اپلیکیشن موبایل با n8n و هوش مصنوعی

تحلیل خودکار عملکرد ساخت اپلیکیشن موبایل با n8n و هوش مصنوعی

11 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۹

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 12368 · منبع: کاتالوگ Axeto

تحلیل عملکرد ساخت اپلیکیشن موبایل با n8n

این گردش کار، تحلیل زمان ساخت اپلیکیشن‌های موبایل را خودکار می‌کند، افت عملکرد را شناسایی کرده و بینش‌های عملی ارائه می‌دهد. این گردش کار با خطوط لوله CI/CD ادغام می‌شود، از Airtable برای داده‌های تاریخی، از GPT-4.1-mini برای تحلیل هوشمند و از GitHub و Gmail برای ارتباط نتایج استفاده می‌کند.

ویژگی‌های کلیدی:

  • تشخیص خودکار افت عملکرد: کندی‌های زمان ساخت را در پروژه‌های Gradle (اندروید) و CocoaPods (iOS) شناسایی می‌کند.
  • مقایسه با خط پایه تاریخی: معیارهای ساخت فعلی را با داده‌های تاریخی ذخیره شده در Airtable مقایسه می‌کند تا روندها را شناسایی کند.
  • تشخیص مبتنی بر هوش مصنوعی: از یک عامل هوش مصنوعی با GPT-4.1-mini برای تشخیص علل ریشه‌ای و پیشنهاد بهینه‌سازی‌ها استفاده می‌کند.
  • اطلاع‌رسانی یکپارچه: گزارش‌های دقیقی را در نظرات درخواست ادغام GitHub منتشر کرده و هشدارهای حیاتی را از طریق Gmail ارسال می‌کند.
  • ممیزی عملکرد: سابقه دائمی عملکرد ساخت و توصیه‌ها را در Airtable ایجاد می‌کند.

موارد استفاده:

  • تشخیص و رفع فعالانه افت عملکرد زمان ساخت که در تغییرات کد جدید ایجاد شده است.
  • شناسایی ماژول‌ها یا وظایف خاصی که به گلوگاه‌های عملکرد تبدیل می‌شوند.
  • حفظ مسیر ممیزی برای بهبودهای عملکرد ساخت و تلاش‌های بهینه‌سازی.
  • اطلاع‌رسانی مستقیم به تیم‌های توسعه در PRها در مورد مسائل مربوط به عملکرد ساخت.
  • تشدید افت عملکرد حیاتی برای توجه فوری.

شکست گردش کار

این گردش کار به چهار مرحله اصلی تقسیم می‌شود:

1. دریافت ورودی و پیکربندی: معیارهای ساخت را از سیستم CI/CD شما دریافت می‌کند و پارامترهای اولیه تحلیل را تنظیم می‌کند.

2. بازیابی و تجمیع داده‌های تاریخی: داده‌های ساخت گذشته را از Airtable بازیابی و پردازش می‌کند تا خطوط پایه عملکرد را ایجاد کند.

3. آماده‌سازی ورودی هوش مصنوعی و مقایسه: داده‌های ساخت فعلی را قالب‌بندی کرده و آن را با آمار تاریخی برای تحلیل هوش مصنوعی ادغام می‌کند.

4. تحلیل هوش مصنوعی و اطلاع‌رسانی: از یک عامل هوش مصنوعی برای تحلیل داده‌ها، تولید گزارش و توزیع یافته‌ها از طریق GitHub و ایمیل استفاده می‌کند.

---

مرحله ۱: دریافت ورودی و پیکربندی

این مرحله ورودی اولیه داده‌ها را مدیریت کرده و پارامترهای لازم برای بقیه گردش کار را تنظیم می‌کند.

#### ۱.۱ تریگر وب‌هوک

  • نوع نود: Webhook (n8n-nodes-base.webhook)
  • هدف: به عنوان نقطه ورود گردش کار عمل می‌کند و معیارهای ساخت را از طریق یک درخواست HTTP POST از خط لوله CI/CD شما دریافت می‌کند.
  • پیکربندی:

* متد: POST

* مسیر: /build-hotspot-tracker (یا یک مسیر سفارشی)

  • بار داده مورد انتظار: وب‌هوک انتظار یک بار داده JSON حاوی جزئیاتی مانند موارد زیر را دارد:

* buildId: شناسه منحصر به فرد برای ساخت.

* prNumber: شماره درخواست ادغام (Pull Request) مرتبط.

* repository: نام مخزن در قالب owner/repo (مثلاً myorg/my-app).

* totalDuration: کل زمان ساخت بر حسب میلی‌ثانیه.

* gradle.tasks: آرایه‌ای از وظایف Gradle با module، duration و وضعیت notCacheable آن‌ها.

* cocoapods.pods: (در حال حاضر در منطق اصلی استفاده نمی‌شود) اطلاعات مربوط به وابستگی‌های CocoaPods.

  • ملاحظات امنیتی: امن‌سازی این نقطه پایانی وب‌هوک بسیار مهم است. برای جلوگیری از ارسال داده‌های غیرمجاز، اقداماتی مانند هدر مخفی، لیست مجاز IP یا احراز هویت n8n را پیاده‌سازی کنید.

#### ۱.۲ پیکربندی ایستا

  • نوع نود: Set (n8n-nodes-base.set)
  • هدف: مقادیر ثابت و پارامترهای پیکربندی مورد استفاده در سراسر گردش کار را تعریف می‌کند.
  • پیکربندی:

* regressionThreshold: آستانه درصدی (مثلاً "20") را برای علامت‌گذاری افزایش زمان ساخت به عنوان یک رگرسیون بالقوه تنظیم می‌کند.

* historicalBuildsCount: تعداد ساخت‌های اخیر را برای مقایسه مشخص می‌کند (مثلاً "10"). توجه داشته باشید که نود Airtable ممکن است تنظیمات محدودیت خاص خود را داشته باشد.

excludeModules: رشته‌ای که برای فیلتر کردن ماژول‌ها یا وظایف در نظر گرفته شده است (مثلاً "test"). توجه: این فیلد در منطق فعلی گردش کار برای فیلتر کردن فعالانه استفاده نمی‌شود و نیاز به پیاده‌سازی اضافی دارد.*

---

مرحله ۲: بازیابی و تجمیع داده‌های تاریخی

این مرحله داده‌های ساخت گذشته را بازیابی کرده و آمارهای پایه را محاسبه می‌کند.

#### ۲.۱ بازیابی ساخت‌های تاریخی

  • نوع نود: Airtable (n8n-nodes-base.airtable)
  • هدف: پایگاه Airtable شما را برای سوابق ساخت قبلی که با مخزن فعلی و شماره درخواست ادغام مطابقت دارند، جستجو می‌کند.
  • پیکربندی:

* عملیات: Search

* پایگاه: پایگاه Airtable تعیین شده شما (مثلاً host Base).

* جدول: جدولی که تاریخچه ساخت را ذخیره می‌کند (مثلاً tblBuildHistory).

* محدودیت: حداکثر تعداد رکوردهایی را که باید بازیابی شوند تنظیم می‌کند (مثلاً 10).

* فرمول فیلتر: فرمولی را برای مطابقت دادن رکوردها با فیلدهای {repository} و {prNumber} که با داده‌های وب‌هوک ورودی مطابقت دارند، ایجاد می‌کند. مثال: AND({repository} = '{{ $json.body.repository }}', {prNumber} = '{{ $json.body.prNumber }}')

  • مشکلات احتمالی: اطمینان حاصل کنید که احراز هویت Airtable معتبر است، مجوزها به درستی تنظیم شده‌اند و فرمول فیلتر به طور دقیق با انواع داده‌های ذخیره شده در Airtable مطابقت دارد (مثلاً رشته در مقابل عدد برای prNumber).

#### ۲.۲ تجمیع داده‌های تاریخی

  • نوع نود: Aggregate (n8n-nodes-base.aggregate)
  • هدف: آمارهای تجمیعی (میانگین، حداکثر، حداقل) را برای totalBuildTime از ساخت‌های تاریخی بازیابی شده در مرحله قبل محاسبه می‌کند.
  • پیکربندی:

* فیلد totalBuildTime را برای محاسبه موارد زیر تجمیع می‌کند:

* avgBuildTime

* maxBuildTime

* minBuildTime

  • خروجی: آمارهای تاریخی تجمیع شده به مرحله بعد منتقل می‌شوند. اگر هیچ ساخت تاریخی یافت نشد، این نود ممکن است هیچ داده‌ای را خروجی ندهد که باید توسط نودهای پایین‌دستی مدیریت شود.

---

مرحله ۳: آماده‌سازی ورودی هوش مصنوعی و مقایسه

این مرحله داده‌های ساخت فعلی را قالب‌بندی کرده و آن را برای تحلیل در کنار زمینه تاریخی آماده می‌کند.

#### ۳.۱ آماده‌سازی ورودی هوش مصنوعی

  • نوع نود: Set (n8n-nodes-base.set)
  • هدف: داده‌های ساخت ورودی و پیکربندی را در یک فرمت استاندارد برای تحلیل هوش مصنوعی سازماندهی می‌کند.
  • پیکربندی: فیلدهای زیر را ایجاد می‌کند:

* currentBuild: حاوی بار داده JSON کامل دریافتی از وب‌هوک است.

* config: شیئی که پارامترهای پیکربندی تنظیم شده در مرحله ۱ را نگه می‌دارد.

* buildMetrics: شیئی که معیارهای کلیدی مانند buildId، prNumber، repository، totalDuration و تعداد gradleTasks را خلاصه می‌کند.

  • مشکلات احتمالی: اگر آرایه gradle.tasks در بار داده وب‌هوک وجود نداشته باشد یا در فرمت مورد انتظار نباشد، عباراتی مانند .length می‌توانند باعث خطا شوند.

#### ۳.۲ مقایسه با ساخت‌های تاریخی

  • نوع نود: Compare Datasets (n8n-nodes-base.compareDatasets)
  • هدف: داده‌های ساخت فعلی آماده شده را با آمارهای تاریخی تجمیع شده ادغام می‌کند و یک مجموعه داده یکپارچه برای عامل هوش مصنوعی ایجاد می‌کند.
  • پیکربندی:

* ادغام بر اساس فیلدها: برای ادغام بر اساس buildId پیکربندی شده است.

* نادیده گرفتن فیلدها در حین مقایسه: فیلدهایی مانند id، createdTime، timestamp را از مقایسه حذف می‌کند.

* ورودی ۰: داده‌های ساختاریافته را از Prepare AI Input دریافت می‌کند.

* ورودی ۱: آمارهای تاریخی تجمیع شده را از Aggregate Historical Data دریافت می‌کند.

  • ساختار خروجی: خروجی این نود حیاتی است زیرا به عامل هوش مصنوعی تغذیه می‌شود. اطمینان حاصل کنید که حاوی فیلدهایی مانند currentBuild، historicalStats و comparison مطابق انتظار اعلان هوش مصنوعی است.

---

مرحله ۴: تحلیل هوش مصنوعی و اطلاع‌رسانی

این مرحله اصلی تحلیل است که در آن هوش مصنوعی بینش‌هایی را ارائه می‌دهد و نتایج توزیع می‌شوند.

#### ۴.۱ مدل چت OpenAI

  • نوع نود: OpenAI Chat Model (@n8n/n8n-nodes-langchain.lmChatOpenAi)
  • هدف: قابلیت‌های مدل زبان را برای عامل هوش مصنوعی فراهم می‌کند.
  • پیکربندی:

* مدل: gpt-4.1-mini

* دما (Temperature): تصادفی بودن را کنترل می‌کند (مثلاً 0.2 برای خروجی قطعی‌تر).

* حداکثر توکن (Max tokens): حداکثر طول پاسخ هوش مصنوعی را تنظیم می‌کند.

  • ملاحظات: اطمینان حاصل کنید که کلید API OpenAI شما به درستی پیکربندی شده است و سهمیه کافی دارید. به محدودیت‌های توکن، به ویژه با بارهای داده ورودی بزرگ، توجه داشته باشید.

#### ۴.۲ تجزیه‌کننده خروجی ساختاریافته

  • نوع نود: Structured Output Parser (@n8n/n8n-nodes-langchain.outputParserStructured)
  • هدف: یک طرحواره JSON خاص را برای خروجی هوش مصنوعی اعمال می‌کند و سازگاری را تضمین کرده و پردازش نتایج را آسان‌تر می‌کند.
  • پیکربندی: یک طرحواره JSON دستی تعریف می‌کند که معمولاً شامل موارد زیر است:

* severity: مسئله را دسته‌بندی می‌کند (مثلاً Critical، Warning، Info).

* regressions: آرایه‌ای که رگرسیون‌های عملکرد را با جزئیات شامل module، percentSlower و impact شرح می‌دهد.

* recommendations: آرایه‌ای از مراحل بهینه‌سازی پیشنهادی.

* فیلدهای اختیاری مانند rootCauses و productivityImpact.

  • مدیریت خطا: اگر پاسخ هوش مصنوعی با این طرحواره مطابقت نداشته باشد، تجزیه‌کننده خطا می‌دهد. برای مدیریت چنین مواردی به صورت روان، مدیریت خطا را پیاده‌سازی کنید.

#### ۴.۳ حافظه زمینه ساخت

  • نوع نود: Memory Buffer Window (@n8n/n8n-nodes-langchain.memoryBufferWindow)
  • هدف: حافظه مکالمه‌ای را برای عامل هوش مصنوعی فراهم می‌کند و به آن اجازه می‌دهد تا زمینه را در طول تعاملات در یک جلسه حفظ کند.
  • پیکربندی:

* کلید جلسه (Session key): به صورت پویا با استفاده از مخزن و شماره PR (مثلاً {{ repository }}-{{ prNumber }}) برای ایجاد جلسات منحصر به فرد تولید می‌شود.

* نوع شناسه جلسه (Session ID type): custom key.

#### ۴.۴ ابزار API GitHub

  • نوع نود: HTTP Request Tool (n8n-nodes-base.httpRequestTool)
  • هدف: به عامل هوش مصنوعی اجازه می‌دهد تا با API GitHub تعامل داشته باشد، به عنوان مثال، برای دریافت جزئیات مربوط به یک درخواست ادغام.
  • پیکربندی:

* قالب URL: URL API GitHub را به صورت پویا با استفاده از متغیرهای مخزن و شماره PR می‌سازد (مثلاً https://api.github.com/repos/{repository}/pulls/{prNumber}).

* هدرها: شامل Accept: application/vnd.github+json است.

* احراز هویت: از اعتبارنامه‌های پیکربندی شده GitHub استفاده می‌کند.

  • توجه: در حالی که به عنوان دریافت "تغییرات فایل" توصیف شده است، پیکربندی فعلی به جزئیات PR هدف قرار می‌گیرد. دریافت تغییرات فایل نیاز به یک نقطه پایانی API متفاوت دارد.

#### ۴.۵ تحلیلگر خروجی ساختاریافته

  • نوع نود: Structured Output Parser (@n8n/n8n-nodes-langchain.outputParserStructured)
  • هدف: یک طرحواره JSON خاص را برای خروجی هوش مصنوعی اعمال می‌کند و سازگاری را تضمین کرده و پردازش نتایج را آسان‌تر می‌کند.
  • پیکربندی: یک طرحواره JSON دستی تعریف می‌کند که معمولاً شامل موارد زیر است:

* severity: مسئله را دسته‌بندی می‌کند (مثلاً Critical، Warning، Info).

* regressions: آرایه‌ای که رگرسیون‌های عملکرد را با جزئیات شامل module، percentSlower و impact شرح می‌دهد.

* recommendations: آرایه‌ای از مراحل بهینه‌سازی پیشنهادی.

* فیلدهای اختیاری مانند rootCauses و productivityImpact.

  • مدیریت خطا: اگر پاسخ هوش مصنوعی با این طرحواره مطابقت نداشته باشد، تجزیه‌کننده خطا می‌دهد. برای مدیریت چنین مواردی به صورت روان، مدیریت خطا را پیاده‌سازی کنید.

#### ۴.۶ تحلیلگر خروجی ساختاریافته

  • نوع نود: Structured Output Parser (@n8n/n8n-nodes-langchain.outputParserStructured)
  • هدف: یک طرحواره JSON خاص را برای خروجی هوش مصنوعی اعمال می‌کند و سازگاری را تضمین کرده و پردازش نتایج را آسان‌تر می‌کند.
  • پیکربندی: یک طرحواره JSON دستی تعریف می‌کند که معمولاً شامل موارد زیر است:

* severity: مسئله را دسته‌بندی می‌کند (مثلاً Critical، Warning، Info).

* regressions: آرایه‌ای که رگرسیون‌های عملکرد را با جزئیات شامل module، percentSlower و impact شرح می‌دهد.

* recommendations: آرایه‌ای از مراحل بهینه‌سازی پیشنهادی.

* فیلدهای اختیاری مانند rootCauses و productivityImpact.

  • مدیریت خطا: اگر پاسخ هوش مصنوعی با این طرحواره مطابقت نداشته باشد، تجزیه‌کننده خطا می‌دهد. برای مدیریت چنین مواردی به صورت روان، مدیریت خطا را پیاده‌سازی کنید.

#### ۴.۷ ارسال به PR GitHub

  • نوع نود: HTTP Request Tool (n8n-nodes-base.httpRequestTool)
  • هدف: گزارش تحلیل تولید شده توسط هوش مصنوعی را به عنوان یک نظر در درخواست ادغام GitHub مربوطه ارسال می‌کند.
  • پیکربندی:

* متد: POST

* URL: https://api.github.com/repos/{repository}/issues/{prNumber}/comments

* بدنه (Body): خروجی ساختاریافته هوش مصنوعی را به یک نظر قابل خواندن برای PR قالب‌بندی می‌کند.

* هدرها: شامل Accept: application/vnd.github+json و هدرهای احراز هویت است.

#### ۴.۸ ارسال ایمیل هشدار بحرانی

  • نوع نود: Gmail (n8n-nodes-base.gmail)
  • هدف: در صورتی که تحلیل هوش مصنوعی مسئله عملکرد ساخت را به عنوان Critical علامت‌گذاری کند، اعلان ایمیلی ارسال می‌کند.
  • پیکربندی:

* عملیات: Send Email

* به: آدرس(های) ایمیل گیرنده.

* موضوع: یک خط موضوع توصیفی، که به طور بالقوه شامل مخزن و شماره PR است.

* بدنه: گزارش تحلیل هوش مصنوعی را در بدنه ایمیل قالب‌بندی می‌کند.

  • پیش‌نیازها: نیاز به یک اعتبارنامه Gmail پیکربندی شده در n8n دارد.

#### ۴.۹ بایگانی نتیجه ساخت

  • نوع نود: Airtable (n8n-nodes-base.airtable)
  • هدف: نتایج تحلیل، از جمله گزارش تولید شده توسط هوش مصنوعی را برای نگهداری سوابق و مراجعه در آینده، به پایگاه Airtable شما ذخیره می‌کند.
  • پیکربندی:

* عملیات: Insert یا Update (بسته به اینکه آیا می‌خواهید رکوردهای جدید اضافه کنید یا رکوردهای موجود را به‌روزرسانی کنید).

* پایگاه و جدول: پایگاه و جدول Airtable را برای بایگانی مشخص می‌کند.

* فیلدها: داده‌های مربوطه را از تحلیل هوش مصنوعی (شدت، توصیه‌ها و غیره) به فیلدهای مربوطه در جدول Airtable نگاشت می‌کند.

---

شروع کار

1. راه‌اندازی Airtable: اطمینان حاصل کنید که یک پایگاه داده (base) و جدول (table) در Airtable برای ذخیره تاریخچه بیلد خود راه‌اندازی کرده‌اید. این جدول باید دارای فیلدهایی برای repository، prNumber، buildId، totalDuration و احتمالاً فیلدهایی برای نتایج تحلیل هوش مصنوعی باشد.

2. پیکربندی اعتبارنامه‌های n8n: اعتبارنامه‌های لازم برای Airtable، GitHub و Gmail را در نمونه n8n خود اضافه کنید.

3. یکپارچه‌سازی با CI/CD: خط لوله CI/CD خود (مانند GitHub Actions، GitLab CI) را طوری تغییر دهید که پس از اتمام بیلد، معیارهای بیلد را به نقطه پایانی Webhook n8n ارسال کند.

4. استقرار Workflow: این Workflow را در نمونه n8n خود وارد کرده و فعال کنید.

5. سفارشی‌سازی پارامترها: مقادیر regressionThreshold، historicalBuildsCount و اعلان هوش مصنوعی (AI prompt) را در Workflow برای مطابقت با نیازهای خاص پروژه و اهداف عملکردی خود تنظیم کنید.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چه مشکلی را حل می‌کند؟

این گردش کار، تحلیل خودکار زمان ساخت اپلیکیشن‌های موبایل را انجام می‌دهد، افت عملکرد را شناسایی کرده و با استفاده از هوش مصنوعی بینش‌های عملی ارائه می‌دهد تا به توسعه‌دهندگان در حفظ عملکرد بهینه کمک کند.

چه ابزارها و سرویس‌هایی در این گردش کار استفاده می‌شوند؟

این گردش کار از n8n به عنوان پلتفرم اصلی، با ادغام خطوط لوله CI/CD، Airtable برای داده‌های تاریخی، GPT-4.1-mini برای تحلیل هوشمند، GitHub برای انتشار گزارش‌ها و Gmail برای ارسال هشدارها استفاده می‌کند.

چگونه این گردش کار افت عملکرد را تشخیص می‌دهد؟

این گردش کار با مقایسه معیارهای ساخت فعلی با داده‌های تاریخی ذخیره شده در Airtable، افزایش قابل توجه در زمان ساخت را به عنوان افت عملکرد بالقوه شناسایی می‌کند و از هوش مصنوعی برای تحلیل علل ریشه‌ای استفاده می‌کند.

نتایج تحلیل چگونه به تیم توسعه اطلاع‌رسانی می‌شود؟

نتایج تحلیل در قالب گزارش‌های دقیقی در نظرات درخواست ادغام GitHub منتشر شده و هشدارهای حیاتی مربوط به افت عملکرد از طریق Gmail ارسال می‌شوند.

workflowهای مرتبط

این workflow در کاتالوگ Axeto.ai بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.