Blogger Jateng

Mengotomatiskan Alur Kerja Pengembangan Web dengan Git Hooks

Dengan hiruk pikuk pengembangan web yang terjadi di sekitar Anda - semuanya bermuara pada efisiensi. Otomatisasi tugas-tugas yang berulang, memakan waktu, dan monoton mengurangi risiko kesalahan manusia. Git hook adalah fitur yang jarang digunakan tetapi sangat kuat dari Git, sistem kontrol versi yang diadopsi secara luas, yang dapat meningkatkan alur kerja Anda. Dalam artikel ini, kita akan membahas apa itu git hook, cara kerjanya, dan bagaimana kita dapat menggunakannya untuk mengotomatiskan fungsi-fungsi dalam pengembangan web.

Apa yang dimaksud dengan Git Hooks?

Git hook adalah skrip yang dijalankan secara otomatis pada titik-titik tertentu dalam siklus hidup Git. Peristiwa ini dapat terjadi sebagai klien, termasuk misalnya sebelum kode dikomit, atau setelah penggabungan, atau sebagai server, misalnya ketika push diterima. Kait masing-masing disimpan sebagai skrip yang dapat dieksekusi. direktori git/hooks di direktori proyek.

Git hook tersedia dalam dua jenis:
  • Kait Sisi Klien: Kait yang dimulai dengan melakukan tindakan seperti komit kode, penggabungan, atau pemeriksaan. Hal ini sering kali berguna untuk menjalankan linting, pengujian, atau menjalankan pemformat kode.
  • Kait Sisi Server: Hooks ini dipanggil oleh tindakan yang terjadi di repositori bersama, seperti push. Kita sering menggunakan hooks di sisi server untuk menegakkan kebijakan, misalnya, menolak komit yang tidak mengikuti konvensi penamaan.
sumber: compile7.org

Kasus Penggunaan Umum untuk Git Hooks dalam Pengembangan Web

Di sini kita akan membahas beberapa metode praktis untuk menggunakan Git hook untuk merampingkan alur kerja pengembangan web Anda.

1. Pemeriksaan Kualitas Kode:

  • Tambahkan hook pra-komit ke Lint/Format seperti ESLint atau Prettier. Ini menjamin bahwa hanya kode yang bebas serat dan diformat dengan baik yang didorong ke repositori.
  • Contoh:

#!/bin/sh
npx prettier --write .
npx eslint .

2. Pengujian Otomatis:

  • Sebagai contoh, kita dapat menggunakan pre-push hook untuk menjalankan pengujian otomatis yang akan memastikan tidak ada kode yang rusak yang didorong ke repo.
  • Contoh:

#!/bin/sh

npm test

if [ $? -ne 0 ]; then

  echo "Tests failed. Push aborted."

  exit 1

fi

3. Pemeriksaan Ketergantungan:

  • Menyiapkan hook penyiapan (post-merge atau post-checkout) untuk secara otomatis menjalankan instal npm saat berpindah cabang atau menarik pembaruan
  • Contoh:

#!/bin/sh

npm install

4. Penandaan Versi:

  • Kait pasca-komit dapat digunakan untuk secara otomatis menandai nomor versi atau membuat log perubahan dari pesan komit. 

5. Menerapkan Pedoman Komit:

  • Kait komit-msg juga dapat memeriksa apakah pesan komit mengikuti format atau catatan tertentu (misalnya, nomor tiket atau pesan komit semantik).
  • Contoh:

#!/bin/sh

commit_regex='^\[JIRA-[0-9]+\] .+'

if ! grep -qE "$commit_regex" "$1"; then

  echo "Commit message does not follow the required format."

  exit 1

fi

Menyiapkan Git Hooks

Ini sederhana dengan kait Git:

  1. Arahkan ke folder. git/hooks di repo Anda.
  2. Tulis file hook yang sesuai (pra-komit, pra-push, dll.) atau perbarui.
  3. Buat skrip Anda di dalam berkas tersebut dan buat agar dapat dieksekusi dengan:

chmod +x <hook-file>

Perlu diingat bahwa hook Git tidak diberi versi secara default karena berada di direktori .git. Untuk berbagi hook di seluruh tim, pertimbangkan untuk menggunakan alat bantu seperti Husky, yang memungkinkan Anda mengelola hook sebagai bagian dari repositori Anda.

Apa Saja Praktik Terbaik untuk Git Hooks

  • Hindari Logika yang Berat dalam Hooks: Hooks dimaksudkan untuk menjadi fungsi yang cepat dan ringan. Untuk operasi yang lebih berat, Anda harus menggunakan pipa CI/CD.
  • Dokumentasikan Penggunaan Hook: Pastikan tim Anda mengetahui hook apa yang Anda gunakan dan apa fungsinya.
  • Menguji Hooks tanpa henti: Jika tidak ditulis dengan benar, hooks dapat merusak alur kerja Anda, oleh karena itu ujilah sebanyak mungkin sebelum menerapkannya ke produksi.
  • Gunakan Alat untuk Manajemen Hook: Pertimbangkan untuk menggunakan alat bantu seperti Husky dan Lefthook untuk mempermudah membuat, membagikan, dan mengelola hook. 

Kesimpulan

Git hook adalah fitur yang kuat namun sering diabaikan yang dapat mengotomatiskan tugas-tugas yang membosankan dan menerapkan praktik terbaik dalam pengembangan web. Dengan mengintegrasikan Git hook ke dalam alur kerja Anda, Anda bisa memastikan kualitas kode yang konsisten, mengurangi upaya manual, dan mendorong proses pengembangan yang lebih efisien. Baik saat Anda melakukan linting code, menjalankan pengujian, atau mengelola dependensi, Git hook menyediakan cara yang mudah untuk mengotomatisasi dan meningkatkan pipeline pengembangan web Anda.

Kembali ke>>>> Menggunakan Git dalam Alur Kerja Pengembangan Web