Chromium Chronicle #14: افزودن آزمایشات به آبشار

قسمت 14: توسط Zhaoyang Li در MTV، و Eric Aleshire در TOK (اکتبر، 2020)
قسمت های قبلی

آیا می خواهید رگرسیون های ویژگی جدید خود را در Chrome شناسایی کنید؟ آزمایشات خود را به آبشار اضافه کنید (ساخت و زیرساخت آزمایش مداوم کروم)!

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

آیا آزمایش‌های جدید باید در یک مجموعه کاملاً جدید زندگی کنند یا فقط به یک مجموعه موجود اضافه شوند؟

  • آزمون ها در مجموعه های آزمایشی بر اساس نزدیکی محل منبع و موضوع سازماندهی می شوند. اگر تست‌های جدید شما به‌طور منطقی نمی‌توانند در هیچ مجموعه موجود قرار بگیرند، احتمالاً به یک مجموعه جدید نیاز دارید.

آیا آزمایش ها باید روی یک سازنده عمومی اجرا شود یا یک سازنده داخلی؟

  • اگر کد در یک مخزن داخلی وجود دارد یا اینکه آزمایش ها شامل داده های محرمانه هستند از سازنده داخلی استفاده کنید.

آیا تست ها باید در FYI CI، CI اصلی یا commit queue (CQ) اجرا شوند؟

  • FYI CI به نظارت شخصی شما نیاز دارد و برای اصلاح آزمایش یا آزمایش استفاده می شود.
  • تست های اصلی CI به طور منظم توسط کلانترها کنترل می شوند .
  • CQ ارسال CL را در صورت شکست مسدود می کند اما منابع زیرساخت بیشتری را مصرف می کند . یک مجموعه جدید همیشه باید قبل از ارتقاء به CQ از CI شروع شود .
  • اگر مطمئن نیستید، تیم EngProd پلتفرم شما می تواند به شما در تصمیم گیری کمک کند.

من قبلاً یک مجموعه آزمایشی در حال اجرا در CI دارم، چگونه آن را به CQ اضافه کنم؟ / اگر به یک سازنده جدید نیاز داشته باشم چه می شود؟

چگونه یک مجموعه آزمایشی را به یک سازنده موجود اضافه کنیم

برای افزودن یک مجموعه آزمایشی به سازنده موجود ، باید چند فایل را در //src/testing/buildbot/ پیکربندی کنید:

  1. یک کلید در gn_isolate_map.pyl برای مجموعه آزمایشی جدید با برچسب هدف آزمایشی و نوع اطلاعات ایجاد کنید.
  2. آن کلید را به یک گروه آزمایشی در test_suites.pyl اضافه کنید. (می توانید نقشه برداری را از نام سازنده تا گروه های آزمایشی روی بیلدر در waterfalls.pyl پیدا کنید.)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. تنظیم های دقیق تر

    • mixins.pyl حاوی آرگومان هایی است که می توانند برای گروهی از تست ها در سطوح مختلف گروه اعمال شوند.
    • variants.pyl به اجرای یک مجموعه در چندین نمونه با آرگومان های مختلف کمک می کند.
  4. فایل های پیکربندی را با اجرای generate_buildbot_json.py بازسازی کنید.

بعد از اینها، بررسی تغییرات پیکربندی شما بسیار ساده است. سازندگانی که این مجموعه را اجرا می‌کنند، آزمایش‌های جدید را به‌طور خودکار انتخاب می‌کنند، و نتایج در رابط وب برای سازنده در آبشار شروع می‌شود - با اطلاعات اشکال‌زدایی فراوان در صورت خرابی!