Chromium Chronicle מס' 14: הוספת בדיקות ל-Waterfall

פרק 14: מאת ז'אויאנג לי ב-MTV ואריק אלשייר בTOK (אוקטובר 2020)
הפרקים הקודמים

רוצה לזהות רגרסיות בתכונה החדשה שלך ב-Chrome? הוספה של בדיקות לWaterfall (ה-build הרציף של Chrome ותשתית הבדיקה שלו)!

ב-Waterfall של Chrome יש הרבה כלים שמריצים בדיקות על מגוון פלטפורמות שונות. במאמר הזה נסביר איך להוסיף חבילת בדיקה לחשבון קיים ל-builder. לפני שממשיכים, כדאי לחשוב על השאלות הבאות:

האם הבדיקות החדשות צריכות להתבצע בחבילה חדשה לגמרי או פשוט להוסיף לחבילה קיימת?

  • הבדיקות מסודרות בחבילות הבדיקה לפי הקרבה למיקום המקור ולנושא. אם הבדיקות החדשות לא מתאימות מבחינה לוגית לכל חבילה קיימת, כנראה צריכים חבילה חדשה.

האם הבדיקות צריכות לפעול ב-builder ציבורי או ב-builder פנימי?

  • משתמשים בכלי לבניית פנים אם הקוד נמצא במאגר פנימי, או בדיקות כוללות נתונים סודיים.

האם הבדיקות צריכות לפעול ב-CI, ב-CI הראשי או לשמור על תור(CQ)?

  • לידיעתך, ל-CI נדרש ניטור עצמי ומשמש לחידוד הבדיקה או לבצע במהירות ניסויים,
  • הבדיקות העיקריות של ה-CI נמצאות במעקב קבוע על ידי שריפים.
  • ה-CQ חוסם את שליחת נתוני ה-CL במקרה של כשל, אבל צורך יותר משאבי אינפרה. חבילה חדשה צריכה תמיד להתחיל מאינטראקציה ישירה (CI) לפני שניתן לקדם אותה ל-CQ.
  • אם אתם לא בטוחים, צוות EngProd של הפלטפורמה שלכם יוכל לעזור לכם להחליט.

כבר יש לי חבילת בדיקה שפועלת ב-CI. איך מוסיפים אותה ל-CQ? / מה אם אני צריכים build חדש?

איך מוסיפים חבילת בדיקה ל-builder קיים

כדי להוסיף חבילת בדיקה ל-builder קיים, צריך להגדיר חלק מהקבצים ב-//src/testing/buildbot/:

  1. יוצרים מפתח ב-gn_isolate_map.pyl לחבילת הבדיקות החדשה עם פרטי הסוג והתווית של יעד הבדיקה.
  2. מוסיפים את המפתח הזה לקבוצת בדיקה ב-test_suites.pyl. (אפשר למצוא את המיפוי משם ה-builder אל קבוצות הבדיקה ב-builder ב- waterfalls.pyl).

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. יותר כוונונים עדינים.

    • mixins.pyl מכיל ארגומנטים יכול להיות מיושם על קבוצת בדיקות ברמות קבוצה שונות.
    • variants.pyl עוזר להפעיל חבילה במספר מופעים עם ארגומנטים שונים.
  4. ליצור מחדש קובצי תצורה על ידי הרצה generate_buildbot_json.py.

לאחר מכן אפשר פשוט לבדוק את שינויי ההגדרות. ה-builders שמריצים את החבילה הזו יזהו באופן אוטומטי את הבדיקות החדשות, התוצאות יתחילו לעבור בממשק האינטרנט עבור ה-builder ה-Waterfall – כולל שפע של מידע על תוצאות ניפוי הבאגים במקרה של כשלים!