TN-005 β Create Build Pipeline & Execute Initial Test¶
Objective¶
Membuat item Jenkins Pipeline bertipe Pipeline as Code, menghubungkannya dengan repository Gitea, dan menjalankan build awal untuk memverifikasi pipeline.
Background¶
Pipeline sebagai kode memudahkan versioning dan kolaborasi. Jenkins dapat diatur untuk menarik definisi pipeline langsung dari repository agar perubahan workflow tercatat bersama source code.
Scope¶
Mencakup pembuatan Jenkins Pipeline job dari SCM dan initial test untuk membaca Jenkinsfile. Verifikasi lengkap setiap stage dicatat pada TN-006.
Prerequisites¶
- TN-001 hingga TN-004 telah berhasil diselesaikan.
- Repository Gitea sudah dapat diakses oleh Jenkins.
- Credential
gitea-access-tokentersedia di Jenkins. - File
Jenkinsfilesudah ditambahkan ke repositorypersonal-site.
Execution Decision¶
PS-ADR-0007 β Use Pipeline as Code¶
Refer to:
Decision
Jenkins job menggunakan Pipeline script from SCM dan membaca Jenkinsfile dari
repository Personal Site.
Reason
- Menjadikan definisi pipeline bagian dari version control.
- Memungkinkan pipeline direview dan direproduksi dari repository.
- Mengurangi konfigurasi script pipeline manual pada Jenkins Web UI.
Implementation¶
Create a New Pipeline Item¶
- Login ke Jenkins.
- Pilih New Item.
- Masukkan nama item misalnya
personal-site-ci. - Pilih Pipeline.
- Klik OK.
Expected Result
Item Pipeline personal-site-ci berhasil dibuat.
Configure Source Code Management¶
- Pada bagian Pipeline, pilih Pipeline script from SCM.
- Pada SCM, pilih Git.
-
Isi Repository URL:
-
Pilih credential gitea-access-token.
- Atur Branch Specifier ke
*/mainatau cabang target yang relevan. - Biarkan Repository browser kosong jika tidak diperlukan.
Expected Result
Pipeline terhubung ke repository Gitea menggunakan credential yang ditentukan.
Set the Jenkinsfile Path¶
- Pada Script Path, masukkan
Jenkinsfile. - Pastikan path ini sesuai dengan lokasi file di repository.
Expected Result
Jenkins dapat menemukan Jenkinsfile pada root repository.
Configure the Initial Build Trigger¶
- Pilih Build Triggers sesuai kebutuhan.
- Untuk pengujian awal, cukup jalankan manual.
- Untuk integrasi lebih lanjut, gunakan webhook Gitea atau polling SCM.
Expected Result
Trigger awal menggunakan mekanisme manual untuk pengujian terkontrol.
Save and Run the Job¶
- Klik Save.
- Pilih Build Now.
- Buka Build History dan periksa console output.
Expected Result
Jenkins membuat build baru dan mulai mengeksekusi pipeline.
Run the Initial Test¶
- Pastikan item pipeline
personal-site-cisudah tersimpan. - Pilih Build Now untuk memulai eksekusi.
- Pantau Console Output hingga build selesai.
- Buka Stages atau Build History untuk memverifikasi setiap tahapan.
- Periksa bahwa semua stage berikut berhasil:
- Checkout β repository Gitea berhasil diambil.
- Verify Agent β agen
builder-01dapat menjalankan perintah shell. - Build Static Website β Hugo membangun situs ke folder
public. - Package Artifact β artefak
.tar.gzdibuat. - Publish Artifact β artefak diunggah ke MinIO.
- Verify Artifact β artefak dapat ditemukan di bucket
personal-sitepada MinIO.
- Jika build gagal, periksa kembali:
- URL repository dan credential
gitea-access-token. - ketersediaan
podmanpada agen build. - credential
minio-rootdan endpoint MinIO. - lokasi bucket
personal-sitedan isi file pada MinIO.
- URL repository dan credential
Expected Result
Seluruh stage selesai sukses dan artefak tersedia pada bucket personal-site.
Verification¶
| Item | Status | Notes |
|---|---|---|
| Pipeline item dibuat | β | Item dibuat dengan nama personal-site-ci atau setara. |
SCM Git menggunakan gitea-access-token |
β | Credential terpilih di konfigurasi pipeline. |
| Jenkinsfile path valid | β | Jenkinsfile di repository ditemukan. |
| Build awal dapat dijalankan | β | Job dapat dieksekusi dari Jenkins UI. |
| Initial pipeline run berhasil | β | Job berhasil mengeksekusi Jenkinsfile dari repository. |
| Artifact terverifikasi di MinIO | β | File tarball ditemukan di bucket personal-site. |
Notes¶
- Jika checkout gagal, periksa kembali URL repository, scope token, dan credential Jenkins.
- Pantau Console Output untuk menemukan penyebab kegagalan build.
- Gunakan nama item pipeline yang konsisten dengan naming convention proyek.
- Jika ingin mengaktifkan otomatisasi, tambahkan webhook Gitea atau SCM polling setelah initial test berhasil.