Jenkins Εκμάθηση αγωγού: Πώς να δημιουργήσετε JenkinsΑρχείο (Παράδειγμα)

⚡ Έξυπνη Σύνοψη

Jenkins Οι σύνδεσμοι αγωγού δημιουργούν, δοκιμάζουν και αναπτύσσουν εργασίες σε μία διατεταγμένη ακολουθία που εκτελείται ως κώδικας. A JenkinsΤο αρχείο που έχει υποβληθεί δίπλα στο έργο μετατρέπει αυτήν την ακολουθία σε έναν αναθεωρήσιμο, εκδοχικό ορισμό παράδοσης.

  • 🔘 Αγωγός: Μια ομάδα αλληλένδετων συμβάντων όπου κάθε εργασία εξαρτάται από την προηγούμενη.
  • ☑️ JenkinsΑρχείο: Ένα αρχείο κειμένου σε μια γλώσσα συγκεκριμένης περιοχής που περιέχει κάθε βήμα της διοχέτευσης.
  • ✅ Δύο συντακτικές συντάξεις: Η δηλωτική προσφέρει μια σταθερή ιεραρχία· δομή συναλλαγών με σενάριο για Groovy ελέγχου.
  • 🧪 Τέσσερις όροι: Οι αγωγοί, οι κόμβοι, τα στάδια και τα βήματα ονομάζουν τη ροή, τη μηχανή, τη φάση και την εργασία.
  • ️ Διαδρομή εγκατάστασης: Εγκαταστήστε το πρόσθετο δημιουργίας αγωγού, προσθέστε μια προβολή αγωγού, συνδέστε τις εργασίες σε αλυσίδα και εκτελέστε το.
  • 📌 Πρακτικές: Διατηρήστε την εργασία υλικού σε ένα μπλοκ κόμβου, την εργασία που δεν έχει ρυθμιστεί σε ένα στάδιο και αναδιπλώστε τις εισόδους σε χρονικά όρια.

Jenkins αγωγός που ορίζεται ως κώδικας σε ένα JenkinsΑρχεία

Τι είναι Jenkins Γραμμή σωλήνων;

Jenkins Το Pipeline είναι ένας συνδυασμός plugin που υποστηρίζει την ενσωμάτωση και την υλοποίηση αγωγοί συνεχούς παράδοσηςΕίναι ένας επεκτάσιμος διακομιστής αυτοματισμού για τη δημιουργία απλών και σύνθετων αγωγών παράδοσης ως κώδικα μέσω του αγωγού DSL. Ένας αγωγός είναι μια ομάδα συμβάντων που συνδέονται μεταξύ τους σε μια ακολουθία.

Τι είναι οι αγωγοί συνεχούς παράδοσης; Πως δουλεύει?

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

Κατασκευές, ανάπτυξη, δοκιμή και κυκλοφορία καταστάσεων συνεχούς αγωγού παράδοσης σε Jenkins
Εργασία του Jenkins Συνεχείς Αγωγοί Παράδοσης

Η παραπάνω εικόνα απεικονίζει μια συνεχή ροή παράδοσης Jenkins, που αποτελείται από καταστάσεις που ονομάζονται build (κατασκευή), deploy (ανάπτυξη), test (δοκιμή) και release (απελευθέρωση). Κάθε κατάσταση έχει τα δικά της συμβάντα, τα οποία εκτελούνται διαδοχικά.

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

Τι είναι ένα JenkinsΑρχείο?

Jenkins Οι αγωγοί μπορούν να οριστούν σε ένα αρχείο κειμένου που ονομάζεται JenkinsΑρχείο. Εκφράζει τον αγωγό ως κώδικα σε μια γλώσσα συγκεκριμένη για τον τομέα (DSL) και περιέχει κάθε βήμα που απαιτείται για την εκτέλεση του αγωγού.

Τα οφέλη της χρήσης JenkinsΤα αρχεία είναι:

  • Ένας JenkinsΤο File μπορεί να δημιουργήσει αγωγούς για κάθε κλάδο και να εκτελέσει αιτήματα έλξης.
  • Μπορείτε να ελέγξετε το δικό σας Jenkins κώδικας στον αγωγό
  • Μπορείτε να ελέγξετε το δικό σας Jenkins αγωγού
  • Αυτή είναι η μοναδική πηγή για τη διοχέτευση σας και μπορεί να τροποποιηθεί από πολλούς χρήστες.

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

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                echo 'Building'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying'
            }
        }
    }
}

Αποθήκευση στις ριζικές εκδόσεις του αποθετηρίου του αγωγού με τον κώδικα.

Δηλωτική έναντι Scripted σύνταξη αγωγού

Υπάρχουν δύο τύποι Jenkins σύνταξη αγωγού που χρησιμοποιείται για τον ορισμό του JenkinsΑρχείο.

  1. Δηλωτικός
  2. Σκριπίστηκε

Δηλωτικός

Η δηλωτική σύνταξη αγωγού είναι η ευκολότερη οδός. Ακολουθεί μια προκαθορισμένη ιεραρχία και εξακολουθεί να ελέγχει κάθε πτυχή της εκτέλεσης του αγωγού με απλό τρόπο.

Σκριπίστηκε

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

⚠️ Σημείωση: Jenkins τώρα καλεί το κύριος ο ελεγκτής.

Γιατί να χρησιμοποιήσετε Jenkins Γραμμή σωλήνων;

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

Εδώ είναι οι λόγοι για τους οποίους πρέπει να χρησιμοποιήσετε Jenkins αγωγός:

  • Το Pipeline υλοποιείται ως κώδικας, επομένως πολλοί χρήστες μπορούν να επεξεργαστούν και να εκτελέσουν τη διαδικασία.
  • Οι αγωγοί είναι ισχυροί: εάν ο διακομιστής επανεκκινηθεί απροσδόκητα, ο αγωγός συνεχίζεται αυτόματα.
  • Μπορείτε να θέσετε σε παύση μια διοχέτευση και να την κρατήσετε μέχρι να δώσει ένας χρήστης δεδομένα εισόδου.
  • Οι αγωγοί υποστηρίζουν μεγάλα έργα: εκτελούν πολλαπλές εργασίες, ακόμη και χρησιμοποιούν αγωγούς σε έναν βρόχο.

Jenkins Pipeline Concepts

Τέσσερις όροι επαναλαμβάνονται σε κάθε JenkinsΑρχείο:

ΌροςΠεριγραφή
PipelineΈνα σύνολο οδηγιών γραμμένων ως κώδικα που καλύπτει ολόκληρη τη διαδικασία δημιουργίας για συνεχή παράδοση. Με μια διοχέτευση μπορείτε να δημιουργήσετε, να δοκιμάσετε και να παραδώσετε την εφαρμογή.
ΚόμβοςΗ μηχανή στην οποία Jenkins Το μπλοκ κόμβου (node ​​block) χρησιμοποιείται κυρίως στη σύνταξη δέσμης ενεργειών (scripted pipeline).
ΣτάδιοΈνα μπλοκ σταδίου περιέχει μια σειρά βημάτων. Οι διαδικασίες δημιουργίας, δοκιμής και ανάπτυξης συνδυάζονται σε ένα στάδιο, το οποίο είναι επίσης αυτό που απεικονίζεται στην προβολή αγωγού.
ΒήμαΜια μεμονωμένη εργασία που εκτελεί μια συγκεκριμένη διεργασία σε καθορισμένο χρόνο. Μια διοχέτευση είναι μια σειρά βημάτων.

Εγκατάσταση πρόσθετου Build Pipeline στο Jenkins

Το πρόσθετο δημιουργίας αγωγού δημιουργεί μια προβολή αγωγού εισερχόμενων και εξερχόμενων εργασιών και προσθέτει εναύσματα χειροκίνητης παρέμβασης.

Εγκαταστήστε το ως εξής:

Βήμα 1) Οι ρυθμίσεις για το πρόσθετο (plugin) βρίσκονται στην ενότητα Διαχειριστείτε Jenkins > Διαχείριση προσθηκών, Φαίνεται παρακάτω.

⚠️ Σημείωση έκδοσης: ρεύμα Jenkins κυκλοφορίες ετικέτα αυτής της οθόνης Διαχειριστείτε Jenkins → Πρόσθετα; οι καρτέλες συμπεριφέρονται όπως περιγράφεται εδώ.

Διαχείριση σελίδας προσθηκών σε Jenkins πού βρίσκονται οι ρυθμίσεις του πρόσθετου δημιουργίας αγωγού

Εάν έχετε ήδη εγκαταστήσει το πρόσθετο, εμφανίζεται στην καρτέλα εγκατεστημένη.

Εγκατεστημένη καρτέλα της Jenkins διαχειριστής πρόσθετων που παραθέτει το πρόσθετο αγωγού δημιουργίας

Βήμα 2) Εάν το πρόσθετο δεν είναι ήδη εγκατεστημένο, εμφανίζεται στην καρτέλα Διαθέσιμο.

Με εγκατεστημένο το πρόσθετο:

Πώς να δημιουργήσετε Jenkins Pipeline

Μόλις συνδεθείτε στον λογαριασμό σας Jenkins ταμπλό:

Βήμα 1) Κάντε κλικ στο κουμπί «+» στην αριστερή πλευρά του Jenkins πίνακας ελέγχου για τη δημιουργία ενός αγωγού.

Κουμπί συν στο Jenkins πίνακας ελέγχου που χρησιμοποιείται για την προσθήκη μιας νέας προβολής

Βήμα 2) Συμπληρώστε το παράθυρο διαλόγου νέας προβολής:

  1. Δώστε ένα όνομα στην προβολή του αγωγού. Θα την ονομάσουμε «Guru99 Pipeline” για αυτήν την επίδειξη.
  2. Επιλέξτε την προβολή Δημιουργία αγωγού στις επιλογές
  3. Κάντε κλικ στο ok, όπως φαίνεται παρακάτω.

Παράθυρο διαλόγου νέας προβολής με καταχωρημένο το όνομα της προβολής αγωγού και επιλεγμένη την προβολή "Δημιουργία μιας προβολής αγωγού"

Βήμα 3) Η επόμενη σελίδα ζητά περισσότερες λεπτομέρειες διαμόρφωσης. Αποδεχτείτε τις προεπιλεγμένες ρυθμίσεις και βεβαιωθείτε ότι έχετε επιλέξει την πρώτη εργασία στις ρυθμίσεις.

Κάντε κλικ στην επιλογή Εφαρμογή και, στη συνέχεια, στο κουμπί OK.

Δημιουργήστε τη σελίδα διαμόρφωσης προβολής αγωγού με τις προεπιλεγμένες ρυθμίσεις και την πρώτη εργασία που επιλέχθηκε

Στη συνέχεια, εμφανίζεται η ενδεικτική προβολή αγωγού του αντικειμένου σας:

Δείγμα Jenkins προβολή αγωγού δημιουργίας που δημιουργήθηκε για Guru99 Στοιχείο αγωγού

Εκτέλεση κατασκευής αγωγού

Βήμα 1) Αλυσιδώστε πρώτα τις εργασίες σας: ανοίξτε την πρώτη σας εργασία και κάντε κλικ στην επιλογή Ρύθμιση παραμέτρων.

Ρύθμιση παραμέτρων συνδέσμου στην πρώτη Jenkins δουλειά που χρησιμοποιήθηκε για να ξεκινήσει η αλυσίδα θέσεων εργασίας

Βήμα 2) Τώρα, στην ενότητα Δημιουργία εναυσμάτων, επιλέξτε την επιλογή Δημιουργία μετά την κατασκευή άλλων έργων.

Ενότητα "Δημιουργία εναυσμάτων" με επιλεγμένη την επιλογή "Δημιουργία μετά την κατασκευή άλλων έργων"

Υπάρχει πλέον μια αλυσίδα για όλες τις δουλειές σας.

Βήμα 3) Εγκαταστήστε το πρόσθετο προβολής Build Pipeline, εάν δεν το έχετε ήδη εγκαταστήσει.

Βήμα 4) Στις Jenkins στον πίνακα ελέγχου, δημιουργήστε μια προβολή με το κουμπί "+", επιλέξτε την επιλογή Δημιουργία προβολής αγωγού και κάντε κλικ στο OK.

Νέο παράθυρο διαλόγου προβολής με επιλεγμένη την επιλογή "Δημιουργία προβολής αγωγού"

Βήμα 5) Στην ενότητα Ρύθμιση παραμέτρων προβολής αγωγού, εντοπίστε τη Ροή αγωγού.

Στην ενότητα Ροή αγωγού, επιλέξτε την αρχική εργασία που θα εκτελεστεί — την εργασία που είναι συνδεδεμένη με τις άλλες στα Βήματα 1 και 2.

Ρυθμίσεις ροής αγωγού με Guru99 Το Έργο 1 επιλέχθηκε ως η αρχική εργασία

Guru99 Το Έργο 1 επιλέγεται εδώ ως η αρχική εργασία, επομένως οι αλυσιδωτές εργασίες εκτελούνται μία προς μία.

Ενώ ο αγωγός λειτουργεί, τα κόκκινα και πράσινα σύμβολα αναφέρουν την κατάστασή του: το κόκκινο είναι η αποτυχία, το πράσινο η επιτυχία.

Σε αυτό το παράδειγμα, το κουμπί είναι πράσινο, επομένως η διοχέτευση ολοκληρώθηκε με επιτυχία.

Πράσινο κουμπί κατάστασης που δείχνει μια επιτυχημένη Jenkins διαδρομή αγωγού

Τρέξιμο Jenkins αγωγού

Κάντε κλικ στην επιλογή Εκτέλεση για να εκτελέσετε το Jenkins αγωγός. Θα μοιάζει κάπως έτσι:

Κουμπί Εκτέλεσης στο Jenkins προβολή αγωγού κατασκευής

Το παραπάνω παράδειγμα δημιουργεί ένα απλό πρόγραμμα "helloworld.java". Πραγματικά έργα διασυνδέουν πολύ πιο σύνθετες διοχετεύσεις, όπως φαίνεται στην πληρέστερη εικόνα παρακάτω.

Ολοκληρώθηκε το Jenkins προβολή αγωγού δημιουργίας που δείχνει κάθε αλυσιδωτή εργασία σε ακολουθία

⚠️ Σημείωση έκδοσης: Το πρόσθετο προβολής Build Pipeline είναι ο παλαιότερος τρόπος για την απεικόνιση αλυσιδωτών εργασιών freestyle. Η τρέχουσα πρακτική ορίζει την ίδια ροή σε ένα JenkinsΑρχείο. Μπλε Ocean δεν ενισχύεται πλέον.

καλυτερα Ασκεί τη χρήση Jenkins Pipeline

Επτά συνήθειες διατηρούν μια αγωγό συντηρήσιμη:

  • Χρησιμοποιήστε το γνήσιο Jenkins Pipeline
  • Αναπτύξτε τον αγωγό σας ως κώδικα
  • Οποιαδήποτε εργασία μη εγκατάστασης στη διοχέτευσή σας θα πρέπει να πραγματοποιείται εντός ενός μπλοκ σταδίου.
  • Οποιαδήποτε υλική εργασία σε έναν αγωγό πρέπει να εκτελείται εντός ενός μπλοκ κόμβου.
  • Μην χρησιμοποιείτε δεδομένα εισόδου εντός ενός μπλοκ κόμβου.
  • Μην ορίζετε ποτέ μεταβλητές περιβάλλοντος με την καθολική μεταβλητή env
  • Τυλίξτε τις εισροές σας σε χρονικό όριο

Συχνές Ερωτήσεις

Σαρώνει ένα αποθετήριο, βρίσκει κάθε κλάδο που φέρει ένα JenkinsΑρχείο και δημιουργεί μια εργασία για κάθε μία. Η συμπεριφορά του κλάδου προέρχεται από τη μεταβλητή BRANCH_NAME σε αυτό το ένα αρχείο.

Αποθηκεύστε τα στο Jenkins Τα διαπιστευτήρια αποθηκεύονται και διαβάζονται με τον βοηθό credentials() σε ένα μπλοκ περιβάλλοντος. Η τιμή εισάγεται κατά τον χρόνο εκτέλεσης και καλύπτεται στο αρχείο καταγραφής, επομένως δεν υπάρχει κωδικός πρόσβασης στο αρχείο.

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

Ναι. Ένα παράλληλο μπλοκ μέσα σε ένα στάδιο εκτελεί τα κλαδιά του ταυτόχρονα, κάτι που ταιριάζει σε σουίτες που χωρίζονται σε διάφορα προγράμματα περιήγησης. Κάθε κλάδος χρειάζεται έναν agent, επομένως ο χρόνος εκτέλεσης μειώνεται μόνο όταν οι εκτελεστές είναι ελεύθεροι.

Δημοσιεύστε το στο τελικό σημείο δηλωτικού linter ή ανοίξτε την Επανάληψη σε μια προηγούμενη εκτέλεση, επεξεργαστείτε το σενάριο και εκτελέστε το χωρίς να αγγίξετε το αποθετήριο. Και τα δύο εντοπίζουν τα συντακτικά σφάλματα νωρίς.

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

Ναί. Δεύτερος πιλότος Συντάσσει έναν δηλωτικό σκελετό από ένα σχόλιο που ονομάζει τα στάδια και ολοκληρώνει βήματα όπως η ολοκλήρωση της αγοράς και οι εντολές shell. Revδείτε ετικέτες πρακτόρων, διαπιστευτήρια και χρονικά όρια, τα οποία οι προτάσεις συχνά μαντεύουν λανθασμένα.

Μόλις το ίδιο μπλοκ εμφανιστεί σε τρία ή περισσότερα JenkinsΑρχεία. Μια κοινόχρηστη βιβλιοθήκη διατηρεί αυτήν τη λογική σε ένα αποθετήριο με εκδοχές, επομένως μια επιδιόρθωση φτάνει σε κάθε έργο και κάθε αρχείο διατηρεί μόνο τα δικά του στάδια.

Συνοψίστε αυτήν την ανάρτηση με: