Automasi Kode Review di Framework Spring Boot dengan Checkstyle dan CI/CD

Daftar Isi

Dalam mengembangkan applikasi, pastinya teman-teman ingin tetap menjaga kualitas kode bukan ? Ini merupakan salah satu hal penting untuk menjaga konsistensi dalam pembuatan kode, apalagi kalau kita berada dalam sebuah tim yang berskala besar. Nah salah satu alat yang mungkin bisa berguna buat teman teman implementasikan ketika membuat sebuah app menggunakan framework spring boot dan ingin menjaga kualitas kode adalah CheckStyle. 

CheckStyle ini merupakan sebuah alat yang nantinya akan menganalisa kode, serta menegakkan aturan standar kode secara otomatis. Ini berguna agar kode tetap bersih, mudah di baca, dan bisa di sesuaikan dengan standar yang akan kita tentukan. 

Automasi Kode Review di Framework Spring Boot dengan Checkstyle dan CI/CD

Nah, dalam tulisan ini akan saya bahas bagaimana caranya agar kita bisa mengintegrasikan checkstyle dalam proyek spring boot ya, di mulai dari instalasi, konfigurasi, dan cara penggunaanya. Jadinya kita bisa mempermudah proses review kode serta mencegah masalah teknis dari awal. 

Apa itu CheckStyle ? 

Mungkin teman-teman masih bingung soal apa sih sebenarnya itu checkstyle ? Nah, checkstyle sendiri merupakan sebuah tools atau alat bantu yang dapat di gunakan untuk mereview kode agar developer dapat mengikuti standar penulisan kode yang telah di tentukan sebelumnya. 

Alat ini dapat membatu team developer yang berkolaborasi agar kode yang di buatnya tetap konsisten, bersih dan pastinya mudah di baca. Ada beberapa pelanggaran penulisan kode yang dapat di deteksi oleh alat bantu ini seperti : 

  • Import yang tidak di gunakan
  • Panjang baris yang melebihi batas
  • Penamaan variable yang tidak sesuai

Jadi ada baiknya jika kita mengimplementasikan alat bantu ini agar kode kita tetap clean dan mudah di baca dan pastinya tanpa perlu melakukan review manual untuk hal hal kecil yang seharusnya bisa di cek secara otomatis. 

Mari kita langsung ke tutorial cara implementasi check style di framework spring boot. 

Tools Apa Saja yang di Gunakan

  • Spring Boot : Merupakan framework java yang akan kita gunakan dalam proyek. 
  • Check Style : Code static yang akan menganalisis kodingan yang kita buat. 
  • Maven : Merupakan build tool yang paling umum di gunakan dengan spring boot. 
  • Github actions : Keperluan untuk pipeline CI/CD

Buat Project Spring Boot

Pertama tama, pastinya anda harus membuat project spring boot terlebih dahulu. Anda bisa menggunakan website dari spring initializr https://start.spring.io/  untuk membuat struktur dasar dari project spring boot yang akan kita buat. 

Setalah anda berhasil buat project nya, silahkan ekstrak file zip menjadi folder dan buka di project tersebut di teks editor tercinta anda hehe. Kalau saya sendiri sih menggunakan Intellij IDEA yaa. 

Install Pluggin CheckStyle

Agar check style dapat bekerja di lingkungan spring boot yang akan di bangun, maka wajib untuk menginstall pluggin nya di pom.xml ya. Berikut adalah code konfigurasi agar check style terinstall di spring boot : 

CheckStyle Xml

Atau anda bisa langsung copy code di atas di link github saya. link github

Saya akan jelaskan sedikit soal konfigurasi yang saya berikan ya : 

  • <configLocation> : ini akan menunjukan file konfigurasi checkstyle.xml yang akan kita tentukan. ( akan di jelaskan setelah tahap ini ) 
  • <consoleOutput> : ini akan menampilkan semua pelanggaran kode di terminal. 
  • <violationSeverity> : menentukan tingkat pelanggaran yang di laporkan oleh checkstyle. 

Buat File CheckStyle.xml

Jangan lupa untuk membuat file checkstyle.xml dan simpan di root folder project anda ( setara dengan folder src/ ). File ini merupakan file konfigurasi yang akan di gunakan oleh checkstyle untuk menentukan aturan atau gaya penulisan kode yang harus di patuhi. 

Untuk isi konfigurasi checkstyle.xml dapat anda ambil di link github saya : di sini

Check style file yang saya gunakan adalah bawaan dari sun/oracle dan berfokus pada struktur kode/gaya penulisan, komentar javadoc, menghindari import *, dan masih ada beberapa aturan yang perlu di ikut didalam konfigurasi tersebut ketika membuat sebuah code. 

Berikut contoh output yang gagal ketika saya menjalankan perintah mvn:checkstyle:check di terminal : 

Dalam contoh ini, saya telah menyisipkan sebuah file controller bernama HelloApp, yang digunakan sebagai bahan uji coba untuk menjalankan analisis dengan Checkstyle.

CheckStyle Gagal

Berdasarkan log error yang muncul, terlihat bahwa terdapat import HttpStatus dan ResponseEntity yang tidak digunakan di dalam class HelloApp.java. Akibatnya, saat perintah mvn checkstyle:check dijalankan, Checkstyle akan memberikan peringatan agar import yang tidak digunakan tersebut dihapus untuk menjaga kebersihan dan konsistensi kode.

CheckStyle Gagal

Setelah saya menghapus import yang tidak digunakan, error tersebut tidak muncul lagi. Namun, saat ini muncul peringatan baru terkait metode yang diinisialisasi tanpa komentar Javadoc. Checkstyle menganggap hal ini sebagai pelanggaran karena aturan MissingJavadocMethod aktif dalam konfigurasi. Oleh karena itu, setiap metode publik sebaiknya disertai komentar Javadoc untuk menjelaskan fungsinya, agar sesuai dengan standar dokumentasi yang diterapkan 

Setelah saya memperbaiki seluruh error yang terdeteksi oleh Checkstyle, kini proses mvn checkstyle:check dapat dijalankan dengan sukses tanpa menghasilkan error, seperti yang ditunjukkan pada gambar di bawah ini : 

CheckStyle Sukses

Untuk informasi lebih lengkap mengenai penggunaan dan konfigurasi Checkstyle, Anda dapat merujuk langsung ke dokumentasinya melalui situs resmi berikut: https://checkstyle.org/

Jika Anda ingin mencoba langsung aturan Checkstyle yang telah saya buat, Anda bisa meng-clone repository yang sudah saya siapkan dan melakukan pengujian secara langsung. LinkGithub 

Menambahkan File YAML untuk GitHub Actions CI/CD

Seperti yang tercermin dari judul blog ini, kita akan melakukan review kode secara otomatis setiap push ke branch main menggunakan CI/CD melalui GitHub Actions. 
Langkah pertama yang perlu Anda lakukan adalah membuat folder .github/workflows/ di dalam repository, lalu membuat file checkstyle.yml di dalam folder tersebut untuk menyimpan konfigurasi workflow Checkstyle.
 
Berikut adalah contoh kode yml file yang telah saya buat : LinkGithub

Setiap kali terjadi push terbaru ke branch main, pipeline CI/CD akan otomatis menjalankan proses pengecekan kode menggunakan Checkstyle. Jika semua aturan terpenuhi dan proses berhasil, Anda akan melihat hasil seperti ini:

CI/CD Sukses

Bagaimana jika gagal ? Berikut adalah contoh hasil pipeline CI/CD nya : 

CI/CD Gagal

Dengan menerapkan Checkstyle dan mengintegrasikannya ke dalam pipeline CI/CD menggunakan GitHub Actions, kita dapat memastikan bahwa standar penulisan kode tetap terjaga secara otomatis di setiap perubahan yang masuk ke branch utama. Langkah ini tidak hanya membantu menjaga kualitas kode, tetapi juga meningkatkan efisiensi tim dalam melakukan review. Semoga panduan ini dapat menjadi awal yang baik untuk membangun proses pengembangan yang lebih disiplin dan terstruktur.

Posting Komentar