פרק 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 חדש?
- לדווח על באג ברכיב Infra>Client>Chrome כדי
הצוות של
chrome-browser-infra@יכול להתחיל בהערכות ולעזור לך בהגדרה.
איך מוסיפים חבילת בדיקה ל-builder קיים
כדי להוסיף חבילת בדיקה ל-builder קיים, צריך להגדיר חלק מהקבצים
ב-//src/testing/buildbot/:
- יוצרים מפתח ב-
gn_isolate_map.pylלחבילת הבדיקות החדשה עם פרטי הסוג והתווית של יעד הבדיקה. מוסיפים את המפתח הזה לקבוצת בדיקה ב-
test_suites.pyl. (אפשר למצוא את המיפוי משם ה-builder אל קבוצות הבדיקה ב-builder ב-waterfalls.pyl).'all_simulator_tests': { 'previously_existing_test_suite': {}, 'exciting_new_feature_test_suite': {}, },יותר כוונונים עדינים.
mixins.pylמכיל ארגומנטים יכול להיות מיושם על קבוצת בדיקות ברמות קבוצה שונות.variants.pylעוזר להפעיל חבילה במספר מופעים עם ארגומנטים שונים.
ליצור מחדש קובצי תצורה על ידי הרצה
generate_buildbot_json.py.
לאחר מכן אפשר פשוט לבדוק את שינויי ההגדרות. ה-builders שמריצים את החבילה הזו יזהו באופן אוטומטי את הבדיקות החדשות, התוצאות יתחילו לעבור בממשק האינטרנט עבור ה-builder ה-Waterfall – כולל שפע של מידע על תוצאות ניפוי הבאגים במקרה של כשלים!