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 Anda di Chrome? Tambahkan pengujian pada Waterfall (build berkelanjutan dan infrastruktur pengujian Chrome)

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

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

  • Pengujian diatur dalam rangkaian pengujian berdasarkan kedekatan lokasi sumber dan tema. Jika pengujian baru tidak cocok secara logis dengan suite yang ada, Anda mungkin membutuhkan {i>suite<i} baru.

Haruskah pengujian berjalan di builder publik atau builder internal?

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

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

  • FYI CI membutuhkan pemantauan mandiri dan digunakan untuk perbaikan pengujian atau eksperimen.
  • Pengujian CI utama dipantau secara rutin oleh Sheriff.
  • CQ memblokir pengiriman CL jika gagal, tetapi mengambil 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 memutuskan.

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

Cara menambahkan paket pengujian ke builder yang ada

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

  1. Buat kunci di gn_isolate_map.pyl untuk rangkaian pengujian baru dengan label dan info jenis 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 di berbagai level grup.
    • variants.pyl membantu menjalankan suite dalam beberapa instance dengan argumen yang berbeda.
  4. Buat ulang file konfigurasi dengan menjalankan generate_buildbot_json.py

Setelah ini, Anda hanya perlu memeriksa perubahan konfigurasi Anda; builder yang menjalankan suite ini akan mengambil pengujian baru secara otomatis, dan hasilnya akan mulai mengalir di antarmuka web untuk builder di waterfall - lengkap dengan banyak info debug jika terjadi kegagalan.