Chromium Chronicle #14: Menambahkan Pengujian ke Waterfall

Episode 14: oleh Zhaoyang Li di MTV, dan Eric Aleshire di TOK (Oktober 2020)
Episode sebelumnya

Ingin mendeteksi regresi untuk fitur baru di Chrome? Tambahkan pengujian Anda ke Waterfall (infrastruktur pengujian dan build berkelanjutan Chrome).

Ada banyak builder di waterfall Chrome yang menjalankan pengujian pada berbagai platform. Artikel ini menjelaskan cara menambahkan rangkaian pengujian ke builder yang ada. Sebelum melanjutkan, pertimbangkan pertanyaan-pertanyaan berikut:

Haruskah pengujian baru berada di suite baru, atau hanya ditambahkan ke suite yang sudah ada?

  • Pengujian diatur di rangkaian pengujian berdasarkan kedekatan lokasi dan tema sumber. Jika pengujian baru Anda tidak dapat disesuaikan secara logis dengan suite yang ada, Anda mungkin memerlukan suite baru.

Sebaiknya pengujian dijalankan di builder publik atau builder internal?

  • Gunakan builder internal jika kode berada di repo internal, atau pengujian melibatkan data rahasia.

Haruskah pengujian dijalankan di FYI CI, CI utama, atau commit queue(CQ)?

  • FYI CI membutuhkan pemantauan mandiri Anda dan digunakan untuk penajaman pengujian atau eksperimen.
  • Pengujian CI utama dipantau secara rutin oleh Sheriff.
  • CQ memblokir pengiriman CL jika gagal, tetapi memerlukan lebih banyak resource infra. Suite baru harus selalu dimulai dari CI sebelum dipromosikan ke CQ.
  • Jika tidak yakin, tim EngProd platform Anda dapat membantu Anda mengambil keputusan.

Saya sudah memiliki rangkaian pengujian yang berjalan di CI, bagaimana cara menambahkannya ke CQ? / Bagaimana jika saya memerlukan builder baru?

Cara menambahkan rangkaian pengujian ke builder yang ada

Untuk menambahkan rangkaian pengujian ke builder yang ada, Anda perlu mengonfigurasi beberapa file di //src/testing/buildbot/:

  1. Buat kunci di gn_isolate_map.pyl untuk rangkaian pengujian baru dengan info jenis dan label target pengujian.
  2. Tambahkan kunci tersebut ke grup pengujian di test_suites.pyl. (Anda dapat menemukan pemetaan dari nama builder ke grup pengujian pada builder di waterfalls.pyl.)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Lebih banyak penyempurnaan.

    • mixins.pyl berisi argumen yang dapat diterapkan ke grup pengujian pada berbagai level grup.
    • variants.pyl membantu menjalankan suite di beberapa instance dengan argumen yang berbeda.
  4. Buat ulang file konfigurasi dengan menjalankan generate_buildbot_json.py.

Setelah itu, cukup periksa perubahan konfigurasi Anda; builder yang menjalankan suite ini akan otomatis mengambil pengujian baru, dan hasilnya akan mulai mengalir di antarmuka web untuk builder di Waterfall - lengkap dengan banyak info debug jika terjadi kegagalan.