Membangun Server CI (Continuous Integration) di Windows untuk Platform .NET Menggunakan Jenkins Bagian #1
Melanjutkan pembahasan tentang Server CI (Continuous Integration), di mana persiapan awal sudah saya bahas di postingan saya yang berjudul “Persiapan Membangun Server CI (Continuous Integration) di Windows untuk Platform .NET” bagian satu dan dua.
Continuous Integration, untuk selanjutnya kita sebut CI saja, merupakan salah satu kegiatan untuk meningkatkan produktivitas dalam pengembangan aplikasi di mana seluruh hasil kerja (source code) dari masing-masing developer digabungkan (push) ke dalam satu wadah (server repository source code). Bisa sekali sehari, bisa juga beberapa kali dalam sehari. Setiap penggabungan source code akan diverifikasi secara otomatis oleh server CI, yang memungkinkan tim untuk mendeteksi secara dini jika ada masalah/konflik/error pada saat penggabungan source code.
Setelah penggabungan hasil kerja (source code) selesai, server CI otomatis akan melakukan proses build untuk memastikan tidak ada kode yang merusak/membuat proses build gagal. Jadi semakin cepat kegagalan build ini diketahui semakin cepat pula kita meresponnya. Dan jika proses build-nya berhasil akan dilanjutkan dengan proses deploy. Selain itu server CI juga bisa dikonfigurasi untuk melakukan proses lain seperti menjalankan unit testing, integration testing dan testing otomatis lainnya.
Sebagai .NET developer kita sudah biasa melakukan proses build dengan menekan tombol F5 (Start Debugging) atau Ctrl+F5 (Start Without Debugging) baik pada waktu development atau perbaikan bug. Sedangkan untuk contoh deploy anggap saja seperti kita membuat paket installer yang akan didistribusikan ke komputer/server klien. Nah dengan menggunakan CI semua proses ini bisa dilakukan secara otomatis dan terpusat, sehingga kita mempunyai arsip hasil build dan deploy dari waktu ke waktu. Jadi untuk mencari file setup/paket installer terakhir enggak usah lagi nanya ke developer karena bisa langsung kita download dari server CI-nya.
Proses build ini selain bisa dibuat otomatis setiap kita mem-push source code ke server repository bisa juga kita buatkan jadwalnya, misal pas jam makan siang atau jam pulang kantor. Jadi di kantor dibuat kesepakatan/aturan klo ada yang merusak build pas jam makan siang enggak boleh makan siang sampai proses build-nya berhasil atau yang merusak build pas jam pulang kantor enggak boleh pulang sampai proses build-nya berhasil ![]()
Jadi dengan menggunakan CI, alur kerja kita lebih kurang seperti berikut :
- Menulis kode, build dan tes di komputer masing-masing (seperti biasa).
- Commit dan push kode ke server repository/source control seperti GIT atau SVN.
Di masing-masing repository kita pasang
hook scriptuntuk memanggil job/project yang sudah kita buat dan konfigurasi di server CI. - Server CI akan meng-clone repository kemudian melakukan build, menjalankan tes otomatis (jika ada) dan deploy secara otomatis. Jika buildnya gagal ulangi lagi langkah pertama
Cukup ya intronya, berikutnya akan kita bahas tool/software yang bisa kita gunakan untuk mengimplementasikan CI, salah satunya adalah Jenkins.
Jenkins adalah salah satu software continuous integration (CI) open source yang dibuat menggunakan Java. Untuk sejarah Jenkins silahkan digoogle sendiri ya ![]()
Selain Jenkins, ada tool-tool lain yang harus kita siapkan agar implementasi CI menggunakan Jenkins ini bisa berhasil. Berikut daftar lengkapnya :
- Jenkins
- MSBuild – untuk keperluan proses build
- NuGet – untuk merestore package nuget sebelum proses build dijalankan
- Source Control menggunakan Git, Anda bisa juga menggunakan SVN
- TortoiseGit – aplikasi git client
- Bonobo Git Server (server Git gratis berbasis Windows/IIS)
- Inno Setup atau NSIS – untuk keperluan proses deploy/pembuatan paket installer
Tool-tool di atas selain perlu disiapkan juga harus tau cara penggunaannya, klo belum ya silahkan mampir dulu ke sini dan sini.
Sebelum kita lanjut ke pembahasan, kita lihat tool/software untuk Environment Test yang saya gunakan baik di sisi server (Server CI) dan client (developer).
Environment Test Server
- Windows Server 2008 R2
- Automation server Jenkins
- .NET Framework 4.0, 4.5.x
- Microsoft Build 2015
- Source/version control Git
- Server Repository Git
- Package Installer Inno Setup
- NuGet
Environment Test Client
- Visual Studio .NET 2013 Community Edition
- Source/version control Git
- TortoiseGit
Fokus Pembahasan
Untuk postingan pertama ini, kita akan membahas:
- Konfigurasi Jenkins
- Plugin tambahan yang perlu diinstall
- Pembuatan Project (Job)
- Tes clone repository, restore library nuget dan build dalam satu langkah/klik
Instalasi Jenkins
Download dan install Jenkins di sini, setelah instalasi Jenkins bisa diakses di link http://localhost:8080

Konfigurasi Jenkins
Jenkins mempunyai banyak plugin yang mudah dikonfigurasi seperti plugin Git, MSBuild dan lainnya. Berikut adalah daftar plugin yang akan kita install.
- Git plugin
- MSBuild plugin
- NUnit plugin
- Cobertura plugin
- PowerShell plugin
Sebagai contoh kita akan menginstall plugin Git dan MSBuild, berikut langkah-langkahnya :
Menginstall plugin Git
- Akses link : http://localhost:8080/
- Klik link Manage Jenkins, pilih Manage Plugins
- Aktifkan tab
Available, ketikGit plugindi filter box, dari daftar pilihan plugin yang tersedia pilihGit plugin - Klik tombol
Install without restart

Menginstall plugin MSBuild
Masih sama dengan langkah-langkah sebelumnya, hanya saja kali ini plugin yang perlu difilter adalah MSBuild

Ulangi langkah-langkah di atas untuk menginstall plugin lainnya seperti NUnit, Cobertura dan PowerShell.
Konfigurasi Git dan MSBuild
Setelah instalasi plugin Git dan MSBuild, kita perlu menambahkan konfigurasinya di halaman Global Tool Configuration, berikut langkah-langkahnya :
- Akses link : http://localhost:8080/
- Klik link Manage Jenkins, pilih Global Tool Configuration
-
Scroll ke bawah sampai menemukan tulisan
Git/Git installations, untuk isian ` Path to Git executable` isikan lokasi instalasi git secara absolute
Untuk lokasi Git disesuaikan dengan lokasi instalasi Git di mesin Anda.
- Kemudian scroll kebawah lagi sampai menemukan tulisan
MSBuild, kemudian klik tombolAdd MSBuild -
Isikan konfigurasinya seperti gambar berikut :

Untuk lokasi MSBuild juga disesuaikan dengan lokasi instalasi MSBuild di mesin Anda. Terakhir klik tombol Save.
Pembuatan Project (Job)
Berikutnya kita akan membuat project sederhana untuk mencoba proses build, berikut langkah-langkahnya:
- Akses link : http://localhost:8080/
- Klik link New Item
- Isikan nama project, misal northwind-build
- Pilih Freestyle project
-
Pilih Ok

-
Aktifkan tab
Source Code Management, kemudian pilihGit
-
Kemudian lengkapi isian
Repository URLdanCredentialsseperti contoh berikut:
Untuk contoh di atas dengan asumsi instalasi Jenkins dan server repository Git di mesin yang sama.
Jenkins selalu bekerja dengan
branchdan secara default menggunakan branchmaster. -
Berikutnya aktifkan tab
Build, klikAdd build step
-
Pilih ` Build a Visual Studio project or solution using MSBuild`
Disini kita perlu mengisikan beberapa nilai:
- MSBuild Version diisi dengan
MSBuild(yang sudah kita konfigurasi pada langkah sebelumnya) - MSBuild Build File diisi dengan nama solution atau project
- Command Line Arguments (optional) diisi dengan parameter MSBuild
- MSBuild Version diisi dengan
-
Karena project kita menggunakan library NuGet, kita juga perlu menambahkan konfigurasi untuk me-restore library NuGet. Masih di tab Build, klik
Add build stepkemudian pilih ` Execute Windows batch command`.
Untuk isian
Commandisikan perintah/skrip seperti berikut:
Perintah/skrip di atas dengan asumsi Anda sudah mendownload tool NuGet dan menyimpannya di folder
D:\Development Tools.Seperti yang sudah pernah saya bahas di postingan Persiapan Membangun Server CI Bagian #2, proses
builddilakukan setelah me-restore library nuget. Jadi kita harus merubah urutan prioritas agar konfigurasi “Execute Windows batch command” dijalankan terlebih dulu sebelum konfigurasi “Build a Visual Studio project or solution using MSBuild” dengan cara men-drag-nya ke atas.

Pada gambar di atas terlihat konfigurasi “Execute Windows batch command” dan “Build a Visual Studio project or solution using MSBuild” sudah berganti posisi. Terakhir klik tombol Save

Testing Build
Setelah menyelesaikan beberapa konfigurasi, saatnya melakukan pengetesan apakah konfigurasi sebelumnya sudah benar. Berikut langkah-langkahnya :
-
Klik link project
northwind-build
-
Di halaman project
northwind-build, klik linkBuild Now
-
Di informasi
Build Historyakan terlihat progress build dengan nama#1,#2,… dst
-
Jika proses build-nya sukses penanda
bulat-nya berwarna biru, jika warna merah berarti gagal
-
Untuk melihat detil
build, klik link build number, misal#1,#2,… dst
-
Kemudian klik link
Console Output
Catatan penting dari
outputdi atas adalah lokasi dariworkspacedi mana source code/hasil clone dari repository dan proses build dilakukan. Informasi ini tentu akan sangat membantu kita dalam melakukandebugingkonfigurasi/setup CI.
Kesimpulan dari proses build di atas dan tentunya berdasarkan konfigurasi yang kita lakukan, jenkins melakukan hal-hal berikut :
- Meng-clone repository git
- Me-restore library nuget
- Melakukan proses build
Selamat mencoba ![]()
Comments