Sobes.tech
Junior

რა არის ვებჰუკები CI/CD პროცესში?

sobes.tech AI

პასუხი AI-სგან

CI/CD-ში ვებჰუკები — ეს არის ავტომატური HTTP POST-შეტყობინებები, რომლებიც ერთ აპლიკაციიდან მეორეში იგზავნება გარკვეული მოვლენის დროს:

CI/CD კონტექსტში ისინი ასრულებენ ტრიგერების როლს. მაგალითად, Git-რეპოზიტორში push- მოვლენის დროს, ვებჰუკი აგზავნის შეტყობინებას CI/CD სისტემას (Jenkins, GitLab CI, GitHub Actions და ა.შ.). ეს სისტემა, მიღების შემდეგ, ავტომატურად იწყებს პაიპლაინს (კოლექცია, ტესტირება, განთავსება).

ძირითადი კომპონენტები:

  • მოვლენის წყარო: სისტემა, სადაც ხდება მოვლენა (მაგ. Git-რეპოზიტორი).
  • ვებჰუკის URI: URL მისამართი, სადაც იგზავნება HTTP POST-საკითხი. ეს მისამართი ეკუთვნის მიმღებ სისტემას (CI/CD).
  • Payload: მოვლენის მონაცემები, რომლებიც გადაეცემა HTTP POST-საკითხის სხეულში (მაგ. კომიტის, ბრენჩის ინფორმაცია).
  • მიღებელი სისტემა: CI/CD სისტემა, რომელიც პროცესებს იწყებს ვებჰუკის მიღების შემდეგ.

გამოყენების უპირატესობები:

  • ავტომატიზაცია: გამორიცხავს ხელით პროცესების დაწყებას.
  • რეაქტივობა: პაიპლაინი იწყება მაშინვე მოვლენის შემდეგ, რაც უზრუნველყოფს უფრო სწრაფ რეაგირებას.
  • ნაკლები დატვირთვა: მიმღები სისტემა არ საჭიროებს მუდმივ გამოკითხვას წყაროს (polling).

GitHub Actions-ის მაგალითი:

  1. GitHub-ის რეპოზიტორში დამატებულია ვებჰუკი, რომელიც მიუთითებს GitHub Actions-ის endpoint-ზე.
  2. დეველოპერი აკეთებს git push-ს.
  3. GitHub, აღმოაჩენს push-ს, აგზავნის HTTP POST-ს (ვებჰუკი) მითითებულ endpoint-ზე.
  4. GitHub Actions იღებს ვებჰუკს, ანალიზებს payload-ს და იწყებს შესაბამის workflow-ს.
# GitHub Actions-ის მაგალითი workflow, რომელიც ტრიგერებს push-ზე

name: CI Pipeline

on:
  push:
    branches:
      - main # იწყება push-ით main-შუ

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2 # კლონავს რეპოზიტორს

      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: '14'

      - name: Install dependencies
        run: npm ci

      - name: Run tests
        run: npm test