Junior
Čo sú webhooks v procese CI/CD?
sobes.tech AI
Odpoveď od AI
Webhooky v CI/CD sú automatizované HTTP POST požiadavky, ktoré sa odosielajú z jednej aplikácie do druhej pri vzniku určitej udalosti.
V kontexte CI/CD slúžia ako spúšťače. Napríklad, pri udalosti push v Git repozitári webhook odošle oznámenie do systému CI/CD (Jenkins, GitLab CI, GitHub Actions atď.). Tento systém, po prijatí oznámenia, automaticky spustí pipeline (build, testovanie, nasadenie).
Hlavné komponenty:
- Zdroj udalosti: Systém, kde sa udalosť stane (napríklad, Git repozitár).
- URI webhooku: URL adresa, kam sa odosiela HTTP POST požiadavka. Táto adresa patrí prijímajúcemu systému (CI/CD).
- Payload: Dáta o udalosti, prenášané v tele HTTP POST požiadavky (napríklad, informácie o commite, vetve).
- Prijímajúci systém: Systém CI/CD, ktorý spracováva webhook a iniciuje akcie.
Výhody použitia:
- Automatizácia: Odstraňuje ručné spúšťanie procesov.
- Reaktivita: Pipeline sa spustí ihneď po udalosti, čo zabezpečuje rýchlejšiu spätnú väzbu.
- Nízka záťaž: Prijímajúci systém nemusí neustále dotazovať zdroj (polling).
Príklad práce s GitHub Actions:
- V nastaveniach repozitára na GitHub sa pridá webhook, ktorý ukazuje na endpoint GitHub Actions.
- Vývojár vykoná
git push. - GitHub, po zistení udalosti
push, odošle HTTP POST požiadavku (webhook) na určený endpoint GitHub Actions. - GitHub Actions prijme webhook, analyzuje payload a spustí príslušný workflow.
# Príklad workflow v GitHub Actions, ktorý sa aktivuje pri push
name: CI Pipeline
on:
push:
branches:
- main # Spúšťa sa pri push na branch main
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Skontrolovať kód
uses: actions/checkout@v2 # Klonovanie repozitára
- name: Nastaviť Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Nainštalovať závislosti
run: npm ci
- name: Spustiť testy
run: npm test