Jenkins merupakan tools untuk melakukan continuous deployment yang tentunya membutuhkan SCM untuk mendapatkan source code aplikasi nya. Kalau repositori nya publik tentu saja kita bisa langsung melakukan pull, namun bagaimana jika repositori kita private? Tentunya kita harus bisa melakukan autentikasi agar jenkins kita bisa mengambil source code private tersebut.

Pada kali ini kita akan menggunakan SSH key untuk autentikasi nya, ini bisa kita gunakan di github, gitlab, atau git yang lain.

Generate SSH key pada mesin

Yang pertama harus dilakukan adalah generate ssh key pada mesin agar kita memiliki private key dan public key.

ssh-keygen

Pasang SSH Private Key pada Jenkins

Kemudian pada jenkins kita pergi ke Manage Jenkins –> Credentials dan klik (global)

Kita tambahkan credential baru dengan “Kind” SSH Username with private key

Dan paste kan id_rsa nya pada Private Key. Kalian bisa melihat private key dengan perintah cat .ssh/id_rsa
Jika sudah klik create

Pasang SSH Public Key pada Github

Masuk ke github repo kemdian Settings –> Deploy keys dan tambahkan ke situ untuk id_rsa.pub nya. Kalian bisa melihat public key dengan perintah cat .ssh/id_rsa.pub

Clone Private Repository Github

Setelah kalian tambahkan pasangan ssh key tadi, seharusnya kalian bisa melakukan cloning repositori private. Buat suatu job dengan bebas, saya coba buat freestyle project.

Kemudian tambahkan github repo private kamu pada SCM dan jangan lupa pilih credentials nya.

Jika sudah selanjutnya klik save aja. Di halaman selanjutnya, klik “Build Now” untuk mengetes apakah sudah berhasil atau belum.

Kalian bisa klik nomor build nya atau #1 dan cek di console output. Jika warna nya ijo dan hasilnya seperti gambar berikut berarti kalian sudah berhasil melakukan clone repository private dengan kredensial ssh key tadi.

Clone Private Repository Gitlab

Untuk gitlab caranya mirip mirip kok. Kalian bisa buka repository, kemudian ke settings dan deploy keys.