The Chromium Chronicle #14: वॉटरफ़ॉल में जांच करने के तरीके

एपिसोड 14: एमटीवी के ज़ाओयैंग ली और टीओके (अक्टूबर 2020) में एरिक एलेशायर का गाया हुआ
पिछले एपिसोड

Chrome में अपनी नई सुविधा के लिए रिग्रेशन का पता लगाना है? अपने टेस्ट को वॉटरफ़ॉल (Chrome का लगातार बिल्ड और टेस्ट इन्फ़्रास्ट्रक्चर) में जोड़ें!

Chrome के वॉटरफ़ॉल पर ऐसे कई बिल्डर हैं जो कई तरह के प्लैटफ़ॉर्म पर टेस्ट करते हैं. इस लेख में, मौजूदा बिल्डर में टेस्ट सुइट जोड़ने का तरीका बताया गया है. आगे बढ़ने से पहले, इन सवालों पर ध्यान दें:

क्या नए टेस्ट, नए सुइट में मौजूद होने चाहिए या उन्हें किसी मौजूदा सुइट में जोड़ा जाना चाहिए?

  • टेस्ट सुइट को सोर्स लोकेशन और थीम के नज़दीक के हिसाब से व्यवस्थित किया जाता है. अगर आपके नए टेस्ट, सही तरीके से किसी मौजूदा सुइट में फ़िट नहीं होते, तो शायद आपको नए सुइट की ज़रूरत हो.

क्या टेस्ट को किसी सार्वजनिक बिल्डर या इंटरनल बिल्डर पर चलाया जाना चाहिए?

  • अगर कोड इंटरनल रेपो में मौजूद है या जांच में गोपनीय डेटा शामिल है, तो इंटरनल बिल्डर का इस्तेमाल करें.

क्या टेस्ट, FYI CI, मुख्य सीआई या कमिट क्यू(सीक्यू) में होने चाहिए?

  • FYI CI को आपकी खुद की निगरानी की ज़रूरत होती है और इसका इस्तेमाल टेस्ट को बेहतर बनाने या प्रयोग करने के लिए किया जाता है.
  • पुलिसवाले मुख्य सीआई टेस्ट की नियमित रूप से निगरानी करते हैं.
  • ऐसा न होने पर, CQ सीएल के सबमिशन को ब्लॉक कर देता है, लेकिन ज़्यादा इन्फ़्रास्ट्रक्चर रिसॉर्स लेता है. नए सुइट को CQ में प्रमोट करने से पहले हमेशा CI से शुरू करना चाहिए.
  • अगर आपको पक्के तौर पर नहीं पता है, तो आपके प्लैटफ़ॉर्म की EngProd टीम तय करने में आपकी मदद कर सकती है.

मेरे पास सीआई में पहले से ही एक टेस्ट सुइट है. मैं इसे सीक्यू में कैसे जोड़ूं? / अगर मुझे नया बिल्डर चाहिए, तो क्या होगा?

किसी मौजूदा बिल्डर में टेस्ट सुइट जोड़ने का तरीका

किसी मौजूदा बिल्डर में टेस्ट सुइट जोड़ने के लिए, आपको //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 चलाकर कॉन्फ़िगरेशन फ़ाइलें फिर से जनरेट करें.

इसके बाद, अपने कॉन्फ़िगरेशन के बदलावों को जांचना आसान होगा. इस सुइट को चलाने वाले बिल्डर नए टेस्ट अपने-आप शुरू कर देंगे. साथ ही, वॉटरफ़ॉल के लिए नतीजे, वेब इंटरफ़ेस पर दिखने लगेंगे. फ़ेल होने पर, डीबग से जुड़ी काफ़ी जानकारी मिलेगी!