Integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD) adalah dasar dari pengembangan perangkat lunak era modern. Menggunakan Jenkins dan GitHub, kita akan membahas bagaimana membangun alur kerja CI/CD untuk tim Anda.
1. Setup Repositori pada GitHub
Buat sebuah repositori baru pada GitHub. Undang semua anggota tim untuk memiliki akses ke repositori, sesuai dengan level hak akses yang diinginkan (contoh: collaborator, maintainer).
2. Instalasi dan Konfigurasi Jenkins
Unduh dan instal Jenkins pada server Anda. Pasang plugin GitHub pada Jenkins melalui 'Manage Jenkins' > 'Manage Plugins'. Setelah instalasi, navigasikan ke 'Manage Jenkins' > 'Global Tool Configuration' dan konfigurasi Git.
3. Membuat Job CI pada Jenkins
Pada dashboard Jenkins, pilih 'New Item', beri nama, dan pilih 'Freestyle project'. Di bagian 'Source Code Management', pilih 'Git' dan masukkan URL repositori GitHub Anda.
Di bagian 'Build Triggers', pilih 'GitHub hook trigger for GITScm polling'. Pada bagian 'Build', tambahkan langkah untuk menjalankan script tes atau build Anda.
4. Integrasi Jenkins dengan GitHub
Di repositori GitHub Anda, navigasikan ke 'Settings' > 'Webhooks'.
Tambahkan webhook baru dengan payload URL menuju server Jenkins Anda, dengan path /github-webhook/.
Pilih event yang ingin Anda gunakan untuk memicu Jenkins, misalnya push atau pull request.
5. Membuat Job CD pada Jenkins
Buat job baru seperti langkah CI.
Pada bagian 'Build', tambahkan langkah untuk melakukan deployment, misalnya dengan menggunakan skrip shell atau tools lain seperti Ansible.
6. Monitor dan Pemberitahuan
Pasang plugin seperti 'Email Extension Plugin' pada Jenkins untuk notifikasi email. Atur notifikasi otomatis ke tim saat ada kesalahan di pipeline atau saat deployment berhasil.
7. Ulasan dan Feedback Loop
Gunakan fitur 'Pull Request' pada GitHub untuk proses review kode.
Pastikan setiap kode yang dimerge ke branch utama telah melalui proses review yang ketat.
8. Dokumentasi
Buat README pada repositori GitHub Anda yang menjelaskan alur kerja CI/CD, cara menjalankan tes, dan informasi penting lainnya.
Dengan Jenkins dan GitHub, membangun alur kerja CI/CD menjadi lebih mudah dan terstruktur. Investasi waktu untuk setup awal akan terbayar dengan proses pengembangan yang lebih cepat dan stabil di kemudian hari.