
Luncurkan dan visualisasi saluran pipa saat mengkonfigurasi GitLab CI / CD untuk beberapa proyek.
Continuous Integration (CI) adalah praktik mengotomatisasi perakitan dan pengujian kode sebelum bergabung dengan cabang utama. Ini memungkinkan pengembang untuk menyuntikkan kode cukup sering dan awal, sambil mengurangi risiko memasukkan kesalahan baru ke dalam repositori kode sumber utama.
Meskipun CI memeriksa bahwa kode baru tidak akan rusak ketika terintegrasi dengan kode lain dalam repo yang sama, melewati semua tes pada repo ini hanyalah langkah pertama. Setelah menjalankan CI dalam kode, penting untuk menggunakan dan menjalankan tes di lingkungan nyata. Transisi dari CI ke Pengiriman dan Penyebaran Berkelanjutan (CD) adalah langkah berikutnya ke DevOps "dewasa". Penempatan dan pengujian ulang selanjutnya memungkinkan Anda menguji kode satu proyek bersama dengan komponen dan layanan lain yang mungkin dikelola oleh proyek lain.
Mengapa saya perlu memastikan kode saya berfungsi dengan komponen lain?
Contoh yang baik adalah arsitektur layanan mikro. Biasanya, layanan microser dikelola dalam proyek yang berbeda, di mana setiap microservice memiliki repositori sendiri dengan sebuah pipeline. Selain itu, sangat sering masing-masing tim pengembangan bertanggung jawab atas masing-masing layanan mikron dan konfigurasi pipa. Sebagai seorang programmer, Anda mungkin ingin memastikan bahwa perubahan pada kode Anda tidak melanggar fungsi dari layanan microser-nya. Karena itu, Anda dapat menjalankan tes selain tes untuk proyek Anda.
Proyek Lintas Pipa
Saat memulai pipeline proyek, Anda juga perlu menjalankan pipeline cross-project, yang pada akhirnya akan menyebarkan dan menguji versi terbaru dari semua layanan microser dependen. Untuk mencapai ini, Anda memerlukan cara yang sederhana, fleksibel dan nyaman untuk meluncurkan jaringan pipa lain dalam kerangka CI proyek Anda. GitLab CI / CD menawarkan cara mudah untuk meluncurkan pipa lintas proyek dengan menambahkan tugas khusus ke file konfigurasi CI.
File konfigurasi GitLab CI / CD
Dalam GitLab CI / CD, jalur pipa, serta pekerjaan dan langkah-langkah komponennya didefinisikan dalam file .gitlab-ci.yml
untuk setiap proyek. File adalah bagian dari repositori proyek. Ini sepenuhnya versi, dan pengembang dapat mengeditnya menggunakan IDE pilihan mereka. Mereka tidak perlu meminta administrator sistem atau perintah DevOps untuk membuat perubahan pada konfigurasi pipa, karena mereka dapat melakukannya sendiri. File .gitlab-ci.yml
menentukan struktur dan urutan pipa, dan memutuskan apa yang perlu dilakukan menggunakan GitLab Runner (agen yang menjalankan tugas), dan keputusan apa yang harus diambil ketika kondisi tertentu muncul, misalnya, ketika proses selesai dengan sukses atau keluar sistem.
Menambahkan pekerjaan untuk menjalankan pipa lintas proyek
Dimulai dengan GitLab 11.8, GitLab menyediakan sintaks konfigurasi CI / CD baru untuk menjalankan pipa lintas proyek, yang dapat ditemukan dalam aturan konfigurasi pipa. Kode berikut menggambarkan cara mengkonfigurasi pekerjaan jembatan untuk menjalankan pipa downlink:
// job1 job deploy: stage: Deploy script: this is my script // job2 bridge job , - Android: stage: Trigger-cross-projects trigger: mobile/android
Dalam contoh di atas, segera setelah pekerjaan penyebaran pada tahap penerapan berhasil, tugas untuk jembatan Android dimulai. Status awalnya akan ditangguhkan. GitLab akan membuat pipa hilir di proyek seluler / android, dan setelah dibuat, pekerjaan Android akan berhasil. Dalam hal ini, ponsel / android adalah jalur lengkap ke proyek ini.
Pengguna yang membuat pipa hulu harus memiliki hak akses ke proyek hilir (dalam hal ini, ponsel / android). Jika proyek hilir tidak dapat ditemukan atau pengguna tidak memiliki hak akses untuk membuat saluran pipa di sana, pekerjaan Android akan menerima status gagal.
Gambaran umum grafik dari hulu ke hilir
GitLab CI / CD memungkinkan Anda untuk memvisualisasikan konfigurasi pipa. Pada gambar di bawah, langkah-langkah perakitan, pengujian, dan penyebaran adalah bagian dari proyek hulu. Setelah pekerjaan penyebaran selesai dengan sukses, empat proyek lintas akan diluncurkan secara paralel, dan Anda dapat melanjutkannya dengan mengklik salah satu pekerjaan hilir.

Pada gambar di bawah ini Anda dapat melihat garis pembayaran menurun "Layanan - Keuangan". Sekarang Anda dapat menggulir ke kiri ke pipa naik, gulir kanan kembali ke pipa menurun, atau pilih pipa turun lainnya.

Mendefinisikan cabang pipa anak
Anda bisa menentukan nama cabang yang akan digunakan pipa menurun:
trigger: project: mobile/android branch: stable-11-2
Gunakan kata kunci proyek untuk menunjukkan jalur lengkap ke proyek hilir. Gunakan kata kunci cabang untuk menentukan nama cabang. GitLab akan menggunakan komit yang saat ini ada di cabang HEAD saat membuat pipa downlink.
Melewati variabel ke pipa menurun
Suatu hari, Anda mungkin ingin meneruskan variabel ke pipa menurun. Anda dapat melakukan ini dengan kata kunci untuk variabel, seperti yang Anda lakukan dengan definisi pekerjaan biasa.
Android: variable: ENVIRONMENT: 'This is the variable value for the downstream pipeline' stage: Trigger-cross-projects trigger: mobile/android
Variabel LINGKUNGAN akan diteruskan ke setiap pekerjaan yang ditentukan dalam pipa menurun. Ini akan tersedia sebagai variabel lingkungan setiap kali GitLab Runner memilih pekerjaan.
Total pipa lintas proyek
File .gitlab-ci.yml
menentukan urutan tahapan CI / CD, tugas yang harus dilakukan dan dalam kondisi apa untuk memulai atau melewatkan tugas. Menambahkan 'pekerjaan jembatan' dengan kata kunci trigger
ke file ini dapat digunakan untuk menjalankan jaringan pipa lintas proyek. Kita dapat mengirimkan parameter ke pekerjaan dalam pipa yang menurun dan bahkan menentukan cabang yang akan digunakan pipa menurun.
Pipa dapat menjadi struktur yang kompleks dengan banyak tugas berurutan dan paralel, dan seperti yang baru saja kita pelajari, kadang-kadang pipa dapat berjalan di hilir. Untuk menyederhanakan pemahaman tentang aliran pipa, termasuk pipa yang menurun, GitLab memiliki pipa untuk melihat saluran pipa dan statusnya.

Baca juga artikel lain di blog kami: