Junior
CI/CD prosesində webhook-lər nədir?
sobes.tech Süni İntellekt
AI-dan cavab
CI/CD-də vebhooklar müəyyən hadisə baş verdikdə bir tətbiqdən digərinə göndərilən avtomatlaşdırılmış HTTP POST sorğularıdır.
CI/CD kontekstində onlar tetikleyici rolunu oynayır. Məsələn, Git deposunda push hadisəsi baş verdikdə, webhook CI/CD sisteminə (Jenkins, GitLab CI, GitHub Actions və s.) bildiriş göndərir. Bu sistem, bildirişi aldıqdan sonra avtomatik olaraq pipeline-ı (yığma, test, yerləşdirmə) işə salır.
Əsas komponentlər:
- Hadisənin mənbəyi: Hadəənin baş verdiyi sistem (məsələn, Git deposu).
- Webhook URI: HTTP POST sorğusunun göndərildiyi URL ünvanı. Bu ünvan qəbul edən sistemə (CI/CD) aiddir.
- Payload: Hadisə haqqında məlumatlar, HTTP POST sorğusunun gövəsində ötürülür (məsələn, commit, branch haqqında məlumatlar).
- Qəbul edən sistem: Webhook-u işləyən və əməliyyatları başlatan CI/CD sistemi.
İstifadə üstünlükləri:
- Avtomatlaşdırma: Əl ilə işləri aradan qaldırır.
- Reaktivlik: Hadəədən dərhal sonra pipeline işə düşür, bu da daha sürətli geribildirim təmin edir.
- Aşağı yük: Qəbul edən sistem, mənbəni davamlı sorğulamağa ehtiyac duymur (polling).
GitHub Actions ilə işləmə nümunəsi:
- GitHub-da repository ayarlarında webhook əlavə edilir və bu, GitHub Actions endpoint-inə işarə edir.
- İnkişafçı
git pushedir. - GitHub,
pushhadisəsini aşkar etdikdə, göstərilən endpoint-ə HTTP POST (webhook) göndərir. - GitHub Actions webhook-u qəbul edir, payload-u analiz edir və müvafiq workflow-u işə salır.
# Push ilə tetiklenen GitHub Actions workflow nümunəsi
name: CI Pipeline
on:
push:
branches:
- main # main branch-ə push edildikdə tetiklenir
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Kodları yoxla
uses: actions/checkout@v2 # repository-nu klonlayır
- name: Node.js qurulması
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Asılılıqları quraşdır
run: npm ci
- name: Testləri işə sal
run: npm test