Από πού λαμβάνει ο runner τον κώδικα για εκτέλεση;
sobes.tech AI
Απάντηση από AI
Ο Runner λαμβάνει τον κώδικα για εκτέλεση από το αποθετήριο του συστήματος ελέγχου εκδόσεων, συνήθως μέσω πρωτοκόλλου όπως το Git. Η συγκεκριμένη URL του αποθετηρίου και το κλαδί (ή ετικέτα, commit) καθορίζονται στη διαμόρφωση του pipeline που ενεργοποιεί τον συγκεκριμένο runner.
Η διαδικασία λήψης μπορεί να είναι η εξής:
- Ο Runner λαμβάνει την εντολή να εκτελέσει μια εργασία από τον orchestrator CI/CD (π.χ., GitLab CI/CD, GitHub Actions, Jenkins).
- Μαζί με την εντολή, μεταδίδονται πληροφορίες σχετικά με την εργασία, συμπεριλαμβανομένου του συνδέσμου προς το αποθετήριο, του κλαδιού/commit και του πλαισίου εκτέλεσης.
- Ο Runner πραγματοποιεί μια λειτουργία κλωνοποίησης του αποθετηρίου (ή μέρους αυτού) στον προσωρινό τοπικό χώρο εργασίας του.
- Μετά από επιτυχημένη κλωνοποίηση, ο runner μεταβαίνει στο συγκεκριμένο commit, κλαδί ή ετικέτα, διασφαλίζοντας ότι εργάζεται με τη σωστή έκδοση του κώδικα.
Παράδειγμα εντολής κλωνοποίησης στο GitLab CI:
# Κλωνοποίηση του αποθετηρίου που ορίζεται στη μεταβλητή CI_REPOSITORY_URL
git clone "$CI_REPOSITORY_URL" "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Μετάβαση στον κατάλογο του έργου
cd "$CI_BUILDS_DIR/$CI_PROJECT_NAME"
# Έλεγχος για το απαραίτητο commit
git checkout "$CI_COMMIT_SHA"
Σε ορισμένες περιπτώσεις, αν υπάρχει cache, ο runner μπορεί πρώτα να ελέγξει αν υπάρχει τοπικό αντίγραφο του αποθετηρίου και να εκτελέσει μόνο git fetch και git checkout για ενημέρωση στην επιθυμητή κατάσταση, αντί για πλήρη κλωνοποίηση.
Η διαμόρφωση που ορίζει την πηγή του κώδικα καθορίζεται συνήθως σε ένα αρχείο YAML που περιγράφει το pipeline (π.χ., .gitlab-ci.yml, .github/workflows/*.yml).