Automation Code Review dengan SonarQube
Sabtu pagi yg cerah sambil ditemani segelas kopi hitam, membuat suasana semakin ceria. Tak terasa sudah lama tidak menulis kembali. Kali ini kita akan membahas sebuah tools gratis yg sangat membantu dalam menganalisa code. Yuph, lebih tepatnya untuk kebutuhan code review dalam development. Sebenarnya ada banyak sekali tools gratis & open source yg bisa kita gunakan. Namun, kali ini kita akan coba membahas SonarQube. Kenapa SonarQube dipilih? Selain karena kemudahannya, menurut saya report hasil scannya pun detail & menarik. Yuk kita langsung saja praktekkan. Perlu diingat, di sini saya menggunakan MacOS, teman-teman bisa menyesuaikan sesuai OS yg digunakan ya. Namun, sebelum melanjutkan, kita butuh download software berikut :
- JRE (disini saya menggunakan versi 11, dikarenakan kebutuhan development saat ini. Teman-teman bisa menggunakan versi terbaru & direkomendasikan untuk menggunakan versi terbaru).
- SonarQube (di sini saya menggunakan versi 8.9 dikarenakan versi tersebut yg support jre versi 11. Teman-teman disarankan menggunakan versi terbaru)
Adapun langkah-langkahnya berikut :
- Ekstrak file yang diunduh ke folder aplikasi : /Applications/SonarQube
- Pindah folder ke : /Applications/SonarQube/bin/macosx-universal-64. Kemudian jalankan perintah berikut :
./sonar.sh start
- Buka browser dan akses: http://localhost:9000 seperti berikut :
- Login dengan Username : admin dan Password : admin
Langkah selanjutnya adalah Inisialisasi Proyek, berikut langkah-langkahnya :
- Pada halaman Dashboard SonarQube, klik Create Project dan tambahkan detail seperti project key dan display name. Di sini saya mengisi project key dan display name dengan sample-php-app. Kemudian klik Set Up.
- Pada Halaman Overview, isi nama token. Di sini saya mengisi dengan nama sample-php-app-token. Kemudian klik Generate.
- Token akan ter-generate. Klik Continue.
- Pilih tools yg digunakan. Karena kita akan mencoba pada php, maka kita pilih Other. Untuk OS, saya pilih macOS karena memang saya sedang menggunakan macOS. Jika teman-teman menggunakan windows atau linux, bisa memilih sesuai OS yg digunakan. Copy konfigurasi, ini akan kita taruh pada root project.
- Pada tahap ini kita sudah selesai untuk inisialisasi project.
Sampai di sini, kita sudah berhasil membuka halaman dashboard SonarQube dan inisialisasi project. Langkah selanjutnya adalah kita perlu meng-install Sonar Scanner. Sonar Scanner adalah tool untuk menganalisis kode dan mengirim laporan ke server SonarQube. Adapun langkah-langkah selanjutnya adalah :
- Install Sonar Scanner, di sini saya menggunakan Homebrew
- Periksa versi Sonar Scanner untuk memastikan Sonar Scanner sudah terinstall dengan benar
sonar-scanner --version
- Bila sudah tampil versinya, berarti sonar scanner sudah siap digunakan.
Langkah selanjutnya, kita akan mencoba scan project menggunakan Sonar Scanner dan melihat hasilnya pada Dashboard SonarQube. Untuk projectnya sendiri, di sini saya sudah menyiapkan sebuah project php sederhana untuk keperluan artikel ini. Teman-teman dapat melakukan clone project pada link berikut :
https://github.com/Agunahwan/php-simple-project
Setelah teman-teman sudah melakukan clone project, kita akan coba memulai melakukan inisialisasi pada project tersebut. Adapun langkah-langkahnya sebagai berikut :
- Buat file
sonar-project.properties
di root project. Kemudian isi file tersebut dari konfigurasi project yg kita dapat saat membuat project di Dashboard SonarQube. Berikut contoh isi konfigurasi yg sudah kita setting sebelumnya :
<
p style=”text-align: left; padding-left: 40px;”>sonar.projectKey=sample-php-app
sonar.sources=.
sonar.host.url=http://localhost:9000
sonar.login=5655bd05f2bceb25f68e0820ad91a92afcef5ff3
- Kira-kira berikut struktur file yang akan kita lihat :
- SonarQube untuk PHP membutuhkan tools seperti PHP_CodeSniffer atau PHPUnit. Install dengan Composer. Berikut perintah yang bisa diberikan :
composer require --dev squizlabs/php_codesniffer
composer require --dev phpunit/phpunit
Sampai pada tahap ini, kita sudah dapat menjalankan analisis code. Adapun langkah-langkahnya sebagai berikut :
- Buka terminal di folder project. Kemudian jalankan perintah berikut dan tunggu hingga proses selesai :
sonar-scanner
- Hasil analisis pun akan muncul di Dashboard SonarQube.
Sebenarnya, lebih lanjut untuk SonarQube ini sendiri, kita bisa menjadikannya standard pada saat kita melakukan proses CI/CD pada platform GIT yg kita gunakan sebelum proses deployment pada server dilakukan. Mungkin lain kesempatan akan coba kita bahas lebih lanjut penggunaan SonarQube ini pada proses deployment.
Akhir kata, semoga artikel ini bermanfaat untuk teman-teman yang sedang ada kebutuhan dalam proses perapihan code agar code menjadi lebih bersih. Selamat berhari libur dan Terima Kasih. 😀