All Products
Search
Document Center

Enterprise Distributed Application Service:Siapkan Jenkins CI untuk aplikasi EDAS

Last Updated:Mar 11, 2026

Integrasikan Jenkins dengan GitLab untuk secara otomatis membangun dan menerapkan aplikasi Enterprise Distributed Application Service (EDAS). Saat Anda mendorong kode ke GitLab, webhook akan memicu Jenkins untuk menarik kode tersebut, menjalankan build Maven, dan menerapkan aplikasi ke EDAS melalui plugin toolkit-maven-plugin.

Alur kerja ini mendukung aplikasi yang diterapkan pada kluster Elastic Compute Service (ECS) maupun kluster Kubernetes.

Cara kerja

Dorong kode ke GitLab  ->  Webhook GitLab memicu Jenkins  ->  Maven membangun proyek  ->  toolkit-maven-plugin menerapkan ke EDAS
  1. Anda mendorong kode ke repositori GitLab.

  2. Webhook GitLab memberi tahu Jenkins tentang perubahan tersebut.

  3. Jenkins menarik kode terbaru dan menjalankan build Maven.

  4. Plugin toolkit-maven-plugin memanggil skrip API POP EDAS untuk menerapkan aplikasi yang telah diperbarui.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Konfigurasikan proyek Maven

Tambahkan plugin toolkit-maven-plugin ke file pom.xml proyek Anda untuk menentukan pengaturan penerapan EDAS. Untuk konfigurasi lengkap plugin, lihat Gunakan plugin toolkit-maven-plugin untuk memperbarui aplikasi yang diterapkan di kluster ECS.

Setelah mengonfigurasi plugin, kami menyarankan Anda menggunakan Maven pada server yang dikelola sendiri untuk memverifikasi apakah konfigurasi tersebut valid:

mvn clean package toolkit:deploy

Build dan penerapan yang berhasil mengonfirmasi bahwa proyek Maven Anda siap untuk otomatisasi Jenkins.

Instal plugin Jenkins

  1. Di Konsol Jenkins, buka System Management > Plugins.

  2. Instal plugin berikut:

    Plug-inTujuan
    git client plugin, git pluginMenarik kode sumber dari repositori Git
    GitLab hook plug-inMemulai build Jenkins melalui webhook GitLab

Konfigurasikan Maven di Jenkins

  1. Di Konsol Jenkins, buka Manage Jenkins > Global Tool Configuration.

  2. Pilih versi Maven Anda dan konfigurasikan jalur instalasinya.

Siapkan autentikasi SSH antara Jenkins dan GitLab

Buat pasangan kunci SSH di server Jenkins dan tambahkan kunci publik ke GitLab agar Jenkins dapat menarik kode tanpa autentikasi manual.

  1. Di server Jenkins, buat pasangan kunci SSH RSA untuk pengguna yang menjalankan Jenkins. Untuk detailnya, lihat dokumentasi SSH GitLab.

  2. Di GitLab, buka Settings > Deploy Keys.

  3. Klik New Deploy Key dan tempel kunci publik dari server Jenkins.

Buat pekerjaan Jenkins

  1. Di halaman utama Jenkins, klik New Item, masukkan nama pekerjaan, lalu pilih Freestyle Project.

  2. Di bawah tab Source Code Management, pilih Git dan konfigurasikan parameter berikut:

    ParameterDeskripsi
    Repository URLURL repositori Git untuk proyek Anda
    CredentialsPilih None jika pasangan kunci SSH RSA pengguna yang menjalankan Jenkins telah ditambahkan ke GitLab proyek Git ini. Jika tidak, kesalahan akan dikembalikan
  3. Di bawah tab Build Triggers, pilih Poll SCM.

  4. Di bawah tab Build Environments, pilih Add Timestamps to the Console Output.

  5. Di bawah tab Build, klik Add Build Step lalu pilih Invoke Top-level Maven Targets.

  6. Konfigurasikan langkah build Maven:

    ParameterNilai
    Maven VersionPilih versi yang telah Anda konfigurasikan di Global Tool Configuration
    Goalsclean package toolkit:deploy

Konfigurasikan webhook GitLab

Hubungkan GitLab ke Jenkins agar setiap dorongan kode secara otomatis memicu build.

  1. Di proyek GitLab Anda, buka Setting > Web Hooks.

  2. Di bidang URL, masukkan URL webhook dalam format berikut. Ganti placeholder dengan nilai aktual Anda:

    PlaceholderDeskripsiContoh
    <jenkins-server>Alamat IP atau hostname server Jenkins123.57.xx.xxx
    <port>Port pendengar Jenkins8080
    <git-repository-url>URL SSH Git proyekgit@code.aliyun.com:tdy218/hello-edas.git
       http://<jenkins-server>:<port>/git/notifyCommit?url=<git-repository-url>
       http://123.57.xx.xxx:8080/git/notifyCommit?url=git@code.aliyun.com:tdy218/hello-edas.git
  3. Klik Test Hook untuk memverifikasi koneksi webhook.

Verifikasi penerapan

Setelah menyelesaikan konfigurasi, dorong commit ke repositori GitLab Anda. Webhook akan memicu Jenkins, yang kemudian menjalankan Maven dan menerapkan aplikasi ke EDAS.

Untuk memeriksa hasil build:

  1. Buka halaman pekerjaan Jenkins dan klik Build Number > Console Output.

  2. Penerapan yang berhasil menghasilkan output seperti berikut:

       15:58:51 [INFO] Deploy application successfully!
       15:58:51 [INFO] ------------------------------------------------------------------------
       15:58:51 [INFO] BUILD SUCCESS
       15:58:51 [INFO] ------------------------------------------------------------------------
       15:58:51 [INFO] Total time: 24.330 s
       15:58:51 [INFO] Finished at: 2018-12-25T15:58:51+08:00
       15:58:51 [INFO] Final Memory: 23M/443M
       15:58:51 [INFO] ------------------------------------------------------------------------
       15:58:51 Finished: SUCCESS
  3. Jika penerapan gagal, login ke Konsol EDAS, lalu klik Applications di panel navigasi sebelah kiri. Klik nama aplikasi Anda, lalu di panel navigasi sebelah kiri, klik Change Records untuk melihat detail penerapan dan mengidentifikasi penyebab kegagalan.

Terapkan proyek Maven multi-modul

Untuk proyek multi-modul, penyiapan pekerjaan Jenkins sama seperti pada Buat pekerjaan Jenkins. Perbedaannya adalah Anda memerlukan dua langkah build Invoke Top-level Maven Targets alih-alih satu. Bangun modul induk terlebih dahulu untuk menyelesaikan dependensi, lalu bangun dan terapkan submodul.

Konfigurasikan dua langkah build sebagai berikut:

Langkah buildGoalsTujuan
Pertamaclean installBangun modul induk dan selesaikan dependensi
Keduaclean package toolkit:deployBangun dan terapkan submodul target

Contoh: Proyek demo berikut memiliki struktur seperti ini:

edas-app-demo/          (parent module)
├── detail/             (submodule)
├── itemcenter/         (submodule)
└── itemcenter-api/     (submodule)

Untuk menerapkan submodul itemcenter, jalankan clean install pada modul induk terlebih dahulu, lalu jalankan clean package toolkit:deploy pada submodul itemcenter.