Chronicle Chromium nr 14: dodawanie testów do kaskady

Odcinek 14: Zhaoyang Li na kanale MTV i Eric Aleshire w TOK (październik 2020 r.)
Poprzednie odcinki

Chcesz wykryć regresje w przypadku nowej funkcji Chrome? Dodaj swoje testy do kaskady (infrastruktury ciągłej kompilacji i testowania w Chrome).

W kaskadzie Chrome jest wiele kreatorów, które przeprowadzają testy na różnych platformach. Z tego artykułu dowiesz się, jak dodać pakiet testowy do istniejącego kreatora. Zanim przejdziesz dalej, odpowiedz na te pytania:

Czy nowe testy powinny zostać wdrożone w zupełnie nowym pakiecie narzędzi, czy tylko w dotychczasowym?

  • Testy są uporządkowane w pakietach testów według odległości od lokalizacji źródłowej i motywu. Jeśli nowe testy nie pasują do żadnego pakietu, prawdopodobnie potrzebujesz nowego.

Czy testy powinny być przeprowadzane w publicznym konstruktorze czy we wewnętrznym konstruktorze?

  • Jeśli kod znajduje się w wewnętrznym repozytorium lub testy obejmują poufne dane, użyj wewnętrznego kreatora.

Czy testy powinny być przeprowadzane w FYI CI, głównej CI czy w kolejce zatwierdzenia?

  • FYI CI wymaga samodzielnego monitorowania i służy do ulepszania testów lub eksperymentów.
  • Główne testy CI są regularnie monitorowane przez szeryfów.
  • CQ blokuje przesyłanie listy zmian w przypadku niepowodzenia, ale zajmuje więcej zasobów infrastruktury. Nowy pakiet powinien zawsze wychodzić z CI, zanim awansuje na CQ.
  • Jeśli nie masz pewności, czy nie masz pewności, skontaktuj się z zespołem EngProd zajmującym się Twoją platformą.

Mam już pakiet testowy uruchomiony w CI. Jak mogę dodać go do CQ? / A jeśli potrzebuję nowego budowniczego?

Jak dodać pakiet testowy do istniejącego kreatora

Aby dodać pakiet testowy do istniejącego kreatora, musisz skonfigurować w //src/testing/buildbot/ kilka plików:

  1. Utwórz klucz w gn_isolate_map.pyl dla nowego pakietu testów z etykietą docelową i informacjami o typie.
  2. Dodaj ten klucz do grupy testowej w test_suites.pyl. Mapowanie z nazwy konstruktora na grupy testowe znajdziesz w kreatorze waterfalls.pyl.

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Więcej możliwości dostrajania.

    • mixins.pyl zawiera argumenty, które można zastosować do grupy testów na różnych poziomach grupy.
    • variants.pyl ułatwia uruchomienie pakietu w wielu instancjach z różnymi argumentami.
  4. Ponownie wygeneruj pliki konfiguracji, uruchamiając generate_buildbot_json.py.

Następnie wystarczy tylko sprawdzić zmiany w konfiguracji. Kreatory uruchamiające ten pakiet automatycznie wyłapią nowe testy, a wyniki zaczną przesyłać się do interfejsu internetowego kreatora w kaskadzie. Zawierają też mnóstwo danych debugowania na wypadek awarii.