Dalam lanskap pengembangan yang didominasi oleh layanan continuous integration (CI) berbasis cloud, sebuah ekstensi GitHub CLI baru bernama gh-signoff telah muncul, menantang kebijaksanaan konvensional tentang otomatisasi pengujian. Alat yang dikembangkan oleh Basecamp ini memungkinkan pengembang untuk menjalankan pengujian secara lokal dan secara manual menyetujui pekerjaan mereka, menciptakan status pemeriksaan yang lulus tanpa menggunakan runner CI jarak jauh.
Poin Utama Tentang gh-signoff
- Tujuan: Memungkinkan pengembang menjalankan pengujian secara lokal dan secara manual menyetujui pekerjaan mereka
- Cara kerjanya: Membuat status pemeriksaan GitHub yang berhasil melalui perintah
gh signoff
- Pemeriksaan yang dilakukan: Hanya memverifikasi tidak ada perubahan Git yang belum di-commit
- Tidak melakukan: Menjalankan pengujian secara otomatis atau mempublikasikan hasil pengujian
- Instalasi:
gh extension install basecamp/gh-signoff
- Lisensi: MIT
CI Lokal vs CI Cloud: Komunitas yang Terpecah
Pengenalan gh-signoff telah memicu perdebatan signifikan di kalangan komunitas pengembang. Pendukungnya berpendapat bahwa mesin pengembang modern cukup kuat untuk menangani beban pengujian yang sebelumnya membutuhkan infrastruktur cloud. Seperti yang dinyatakan dalam deskripsi ekstensi, Laptop pengembang sangat cepat saat ini. Mereka kurang dimanfaatkan secara kronis. Dan Anda sudah memilikinya. Layanan CI cloud biasanya lambat, mahal, dan disewa.
Namun, banyak pengembang mengungkapkan kekhawatiran serius tentang pendekatan ini. Kritik utama berpusat pada reproduksibilitas dan keandalan. Salah satu komentator mencatat bahwa alat ini pada dasarnya menciptakan status lulus tanpa verifikasi bahwa pengujian benar-benar dijalankan:
Ini hanya menciptakan status lulus di repositori sehingga PR dapat digabungkan. Tidak ada kewajiban bagi pengembang untuk benar-benar menjalankan pengujian secara lokal, jadi Anda bisa menghemat waktu dengan menonaktifkan pemeriksaan status.
Ini menyoroti ketegangan mendasar antara kepercayaan dan verifikasi dalam proses pengembangan perangkat lunak.
Faktor Kepercayaan dalam Tim Pengembangan
Pendekatan gh-signoff dibangun di atas dasar kepercayaan dalam tim pengembangan. Pembela alat ini menunjukkan bahwa bahkan dengan CI tradisional, pengembang yang bertekad dapat melewati pemeriksaan dengan memodifikasi kode pengujian. Mereka berpendapat bahwa membuat proses persetujuan menjadi eksplisit menciptakan akuntabilitas.
Kritikus menyanggah bahwa masalahnya bukan tentang kepercayaan tetapi kesalahan manusia. Seperti yang dijelaskan oleh seorang pengembang berpengalaman dengan 25+ tahun pengalaman coding, bahkan pengembang yang paling berhati-hati pun membuat kesalahan—lupa menghapus output debug, memperbarui penanganan pengecualian, atau memastikan kompatibilitas lintas platform. Menjalankan build di mesin terpisah membantu menangkap kesalahan ini terlepas dari niat atau perhatian pengembang.
Kekhawatiran Isolasi dan Konsistensi Lingkungan
Banyak komentator menekankan bahwa nilai CI berasal dari penyediaan lingkungan yang konsisten dan terisolasi. Ketika pengujian berjalan di mesin pengembang, mereka mungkin lulus karena dependensi atau konfigurasi khusus untuk lingkungan tersebut—yang mengarah pada masalah klasik berfungsi di mesin saya. Beberapa pengembang menyarankan bahwa jika eksekusi lokal diinginkan, menggunakan kontainerisasi atau mesin virtual akan diperlukan untuk memastikan konsistensi lingkungan.
Untuk organisasi yang bekerja dengan sistem kompleks yang memerlukan pengujian di beberapa sistem operasi atau konfigurasi perangkat keras, CI lokal menjadi semakin tidak praktis. Seperti yang dicatat oleh seorang pengembang PyTorch, CI cloud menyediakan paralelisasi dan keragaman lingkungan yang diperlukan yang tidak mungkin direplikasi secara lokal.
Trade-off Biaya vs Kontrol
Aspek finansial dari CI tidak bisa diabaikan. Seiring pertumbuhan organisasi, biaya CI cloud bisa menjadi substansial. Salah satu komentator mengamati bahwa begitu organisasi teknik Anda mencapai ukuran tertentu, Anda bisa berakhir dengan pengeluaran yang sangat besar untuk komputasi CI. Pendekatan gh-signoff berpotensi menawarkan penghematan biaya yang signifikan dengan memanfaatkan perangkat keras pengembang yang sudah ada.
Namun, ini datang dengan trade-off dalam hal auditabilitas dan kepatuhan. Beberapa komentator menunjukkan bahwa sistem CI terpusat menyediakan bukti terdokumentasi dari proses pengujian—sesuatu yang sangat penting untuk organisasi yang tunduk pada audit atau persyaratan regulasi.
Alat gh-signoff mewakili eksperimen menarik dalam memikirkan kembali alur kerja pengembangan, tetapi konsensus komunitas menunjukkan bahwa alat ini kemungkinan paling cocok untuk tim kecil dengan kepercayaan tinggi, aplikasi sederhana, dan persyaratan kepatuhan minimal. Untuk sebagian besar organisasi, terutama yang berskala besar, sistem CI tradisional terus menawarkan manfaat yang lebih besar daripada biayanya.
Referensi: gh-signoff