Sobes.tech
Middle

Τι συμβαίνει μετά την παραλαβή του κώδικα από το GitLab;

sobes.tech AI

Απάντηση από AI

Το GitLab, λαμβάνοντας κώδικα (συνήθως μέσω git push), ξεκινά μια διαδικασία που εξαρτάται από τις ρυθμίσεις του έργου:

  1. Webhooks: Όταν φτάσει νέος κώδικας, το GitLab μπορεί να ειδοποιήσει εξωτερικά συστήματα (π.χ., διακομιστές CI/CD, συστήματα διαχείρισης έργων) στέλνοντας αιτήματα HTTP. Αυτό λειτουργεί ως ενεργοποιητής για περαιτέρω ενέργειες.

  2. Pipeline CI/CD: Αν το αρχείο .gitlab-ci.yml έχει ρυθμιστεί στο έργο, το GitLab Runner ξεκινά το pipeline CI/CD. Αυτή η διαδικασία περιλαμβάνει:

    • Έλεγχο σύνταξης του αρχείου .gitlab-ci.yml.
    • Δημιουργία εργασιών (jobs) βάσει των ορισμών στο αρχείο yml.
    • Ανάθεση εργασιών σε διαθέσιμους runners.
    • Ο runner λαμβάνει τις εργασίες, κατεβάζει τον πηγαίο κώδικα του αποθετηρίου.
    • Εκτελεί τις εντολές που ορίζονται για κάθε εργασία (build, test, deployment κ.λπ.).
    • Αποθηκεύει artefacts (κατασκευασμένες εφαρμογές, αναφορές δοκιμών) και αρχεία καταγραφής.
    • Επιστρέφει την κατάσταση των εργασιών πίσω στο GitLab.

    Παράδειγμα δομής .gitlab-ci.yml:

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Κατασκευή της εφαρμογής..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Εκτέλεση δοκιμών..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Ανάπτυξη της εφαρμογής..."
        - make deploy
      only:
        - main  # Τροφοδοτεί μόνο κατά το push στο branch main
    
  3. Αυτόματες ενέργειες: Το GitLab μπορεί να εκτελεί και άλλες αυτόματες ενέργειες:

    • Δημιουργία Merge Request (κατά το push σε branch διαφορετικό από το στόχο).
    • Ενημέρωση της κατάστασης του Merge Request (αν υπάρχει).
    • Εκτέλεση ελέγχων ασφαλείας (αν έχουν ρυθμιστεί).
    • Αυτόματο κλείσιμο ή σύνδεση εργασιών (μέσω λέξεων-κλειδιών στα commits ή στην περιγραφή του Merge Request).
  4. Σύστημα ειδοποιήσεων: Το GitLab στέλνει ειδοποιήσεις στους χρήστες μέσω email ή άλλων καναλιών (Slack, Mattermost), αν έχουν εγγραφεί σε γεγονότα του αποθετηρίου (νέα commits, καταστάσεις pipeline, σχόλια).

  5. Ενημέρωση δεδομένων αποθετηρίου: Εσωτερικά, το GitLab ενημερώνει τα δεδομένα σχετικά με το αποθετήριο, τις κλάδους, τις ετικέτες και το ιστορικό των commits.

Γενικά, η διαδικασία στοχεύει στην ενσωμάτωση του νέου κώδικα στη γενική ροή εργασίας, στην αυτοματοποίηση της κατασκευής, δοκιμών και ενδεχομένως της ανάπτυξης, καθώς και στην ειδοποίηση των ενδιαφερόμενων μερών.