techspace

14:05

Matrix filmindən CI/CD dərsləri: Boru xətlərinizi necə işlək etməli?

Əgər siz də CI/CD yaml fayllarına qədim run kimi baxıb hər push'da təşviş keçirirsinizsə, bu yazı sizin üçündür. Müəllif etiraf edir ki, uzun müddət Jenkins'də node_modules keşinin itməsi və disk dolması kimi problemlərlə üzləşib. Nəhayət, o başa düşüb ki, CI/CD universal bir skript yox, kodla mühit arasında bir müqavilədir.

Üç platformada “mübarizə” və “qalibiyyət” versiyaları

Müəllif GitHub Actions, GitLab CI və Jenkins üçün əvvəlcə tipik səhvlərlə dolu (keşsiz, təkrar install olunan) pipeline nümunələri, sonra isə optimal, işlək versiyalarını göstərir. Məsələn, GitHub Actions'da npm install əvəzinə npm ci istifadə edib lockfile əsasında keş qurmaq, GitLab CI-da mərhələləri ayırıb artifacts ilə nəticələri ötürmək, Jenkins'də isə stash/unstash ilə node_modules-ı mərhələlər arasında daşımaq tövsiyə olunur.

Əsas prinsiplər: ağıllı keş, tez uğursuzluq, qısa dövr

Müəllifin sözlərinə görə, işlək pipeline üçün üç qayda var: keşdən düzgün yararlanmaq, uğursuzluq halda dərhal dayanmaq və pipeline'i elə qısaltmaq ki, kofe içməyə vaxt tapmamış cavab gəlsin. Nəticədə geribildirim dövrü saatlardan dəqiqələrə enir, flaky testlər asan seçilir, yeni tərtibatçıların onboardinqi sadələşir və CI xərcləri azalır.

Yazıda hər bir platforma üçün tam yaml kodları verilir. Oxuculara öz stack-lərinə uyğun birini seçib sınaqdan keçirmək tövsiyə edilir. Müəllifin mesajı sadədir: “Pipeline ilə vuruşmağı dayandırın, qoy o sizin üçün işləsin”.



Mənbə: Dev.to (https://dev.to/timevolt/cicd-pipelines-that-actually-work-lessons-from-the-matrix-295i)