Halaman ini akan memandu Anda mengonfigurasi Jenkins untuk menyimpan paket Maven yang di-build di repositori Artifact Registry.
Sebelum memulai
Jika repositori target tidak ada, buat repositori baru.
Mengonfigurasi akses ke repositori Anda
Buat akun layanan khusus untuk digunakan Jenkins dengan Artifact Registry.
Jalankan perintah berikut untuk membuat akun layanan bernama
jenkins-sa
:gcloud iam service-accounts create jenkins-sa
Tindakan ini akan membuat akun layanan bernama jenkins-sa@PROJECT.iam.gserviceaccount.com, dengan PROJECT adalah project ID Anda.
Pada project yang berisi repositori, berikan peran Artifact Registry Writer ke akun layanan Jenkins yang Anda buat. Anda dapat memberikan peran untuk semua repositori dalam project atau memberikan peran untuk repositori tertentu yang perlu diakses akun layanan.
Untuk mengetahui detail tentang izin dan memberikan akses berdasarkan peran, lihat Mengonfigurasi kontrol akses.
Menyiapkan cluster GKE
Saat menyiapkan cluster atau kumpulan node Google Kubernetes Engine baru, gunakan akun layanan yang Anda buat untuk digunakan oleh Jenkins.
Konsol
Untuk membuat cluster menggunakan Google Cloud Console, lakukan langkah-langkah berikut:
Buka menu Artifact Registry di Google Cloud Console.
Klik Buat kluster.
Mengonfigurasikan cluster sesuai keinginan. Jangan klik Create terlebih dahulu.
Klik Opsi lainnya pada kumpulan node default.
Di bagian Keamanan, pilih akun layanan Jenkins yang Anda buat.
Klik Save untuk keluar dari overlay.
Klik Create.
gcloud
Gunakan salah satu perintah berikut untuk membuat cluster dengan akun layanan Jenkins. Dalam perintah tersebut, PROJECT adalah project ID Anda.
Untuk membuat cluster dengan akun layanan, jalankan perintah.
gcloud container clusters create example-cluster --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
Untuk membuat node pooldi cluster yang ada:
gcloud container node-pools create example-pool --service-account=jenkins-sa@PROJECT.iam.gserviceaccount.com
Lihat dokumentasi gcloud container cluster create untuk mengetahui detail tentang perintah tersebut.
Menyiapkan Jenkins di GKE
Ikuti tutorial untuk menyiapkan Jenkins di GKE. Gunakan cluster yang Anda buat di bagian sebelumnya.
Di Jenkins, update plugin GKE ke versi terbaru. Klik Manage Jenkins > Manage Plugins > Updates.
Menyiapkan project Maven
Lakukan fork contoh project Maven di repositori GitHub dokumentasi Jenkins.
Clone repositori forked.
git clone git@github.com:USER_NAME/simple-java-maven-app.git
Menyiapkan pipeline baru di antarmuka Jenkins.
- Klik New Item.
- Pilih Pipeline.
- Tetapkan nama untuk pipeline, lalu klik OK.
Pada tab General, konfigurasikan opsi berikut di bagian Pipeline:
- Pilih Pipeline skrip dari SCM.
- Dalam menu drop-down SCM, pilih Git, lalu tentukan URL dan kredensial untuk terhubung ke repositori GitHub Anda.
Klik Simpan.
Mengonfigurasi koneksi ke repositori
Mengonfigurasi Jenkins dengan repositori dan kredensial untuk terhubung ke repositori.
Tambahkan repositori Anda ke Maven
pom.xml
. Gunakan perintah berikut untuk mencetak cuplikan yang akan ditambahkan.gcloud artifacts print-settings mvn [--project=PROJECT] \ [--repository=REPOSITORY] [--location=LOCATION]
Dari mana
- PROJECT adalah project ID. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
- REPOSITORY adalah ID repositori. Jika Anda mengonfigurasi repositori Artifact Registry default, repositori tersebut akan digunakan saat tanda ini dihilangkan dari perintah.
- LOCATION adalah lokasi regional atau multi-regional untuk repositori.
Membuat file YAML sebagai template pod untuk agen Jenkins.
mkdir jenkins cat > jenkins/maven-pod.yaml << EOF apiVersion: v1 kind: Pod spec: containers: - name: maven image: maven:3.3.9-jdk-8-alpine command: ['cat'] tty: true EOF
Ubah file
Jenkinsfile
.pipeline { agent none stages { stage('Deploy') { steps { agent { kubernetes { label 'mavenpod' yamlFile 'jenkins/maven-pod.yaml' } } container('maven') { sh "mvn -B clean deploy" } } } } }
Memulai build
Terapkan perubahan yang Anda buat ke project GitHub.
git add . && git commit -m "Configure my Jenkins pipeline" && git push
Di antarmuka Jenkins, mulai build baru untuk aplikasi dalam contoh project Maven Anda.
Setelah build berhasil diselesaikan, artefak akan ditambahkan ke repositori paket Java Artifact Registry yang Anda buat.
Jalankan perintah berikut untuk mencantumkan paket dalam repositori:
gcloud artifacts packages list --repository=mvn-jenkins --location=LOCATION
Outputnya terlihat mirip dengan contoh berikut:
Listing items under project {YOUR_PROJECT}, repository mvn-jenkins.
PACKAGE CREATE_TIME UPDATE_TIME
com.mycompany.app:my-app 2019-06-25T17:09:44 2019-06-25T17:09:44