Πώς ρυθμίζετε την εκτέλεση μιας εργασίας στο GitLab με το πάτημα ενός κουμπιού;
sobes.tech AI
Απάντηση από AI
Για να ρυθμίσετε την χειροκίνητη εκκίνηση μιας εργασίας στο GitLab CI/CD, χρησιμοποιείται η λέξη-κλειδί when: manual στην περιγραφή της εργασίας στο αρχείο .gitlab-ci.yml.
Παράδειγμα:
stages:
- build
- deploy
build_job:
stage: build
script:
- echo "Χτίσιμο του έργου..."
# Εντολές χτισίματος
deploy_staging:
stage: deploy
script:
- echo "Ανάπτυξη σε staging..."
# Εντολές ανάπτυξης
when: manual # Αυτή η εργασία πρέπει να ξεκινήσει χειροκίνητα
allow_failure: false # Προεπιλογή false, αλλά ρητά δηλωμένο για σαφήνεια
Εξήγηση:
when: manual: Υποδεικνύει στο GitLab ότι αυτή η εργασία δεν θα ξεκινήσει αυτόματα κατά την αλλαγή κώδικα (commit) ή σύμφωνα με το πρόγραμμα. Θα περιμένει να την ξεκινήσει χειροκίνητα ο χρήστης μέσω του περιβάλλοντος GitLab.allow_failure: false: Ορίζει αν οι επόμενες εργασίες (αν υπάρχουν) πρέπει να εκτελεστούν αν αυτή η χειροκίνητη εργασία αποτύχει. Αν οριστεί σεfalse(προεπιλογή), το pipeline θα σταματήσει σε περίπτωση αποτυχίας αυτής της εργασίας. Αν οριστεί σεtrue, το pipeline θα συνεχίσει παρά την αποτυχία.
Μετά την προσθήκη και το commit ενός αρχείου .gitlab-ci.yml με αυτή τη διαμόρφωση, στην διεπαφή των pipelines του GitLab (CI/CD -> Pipelines) θα εμφανιστεί ένα κουμπί "Run" ή η κατάσταση θα εμφανίζεται ως "Manual" δίπλα στην εργασία deploy_staging. Κάνοντας κλικ σε αυτό το κουμπί, ξεκινά η εργασία.
Επίσης, μπορούν να συμπεριληφθούν χειροκίνητες εργασίες σε στάδια που ξεκινούν αυτόματα άλλες εργασίες. Για παράδειγμα:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Χτίσιμο..."
test_job:
stage: test
needs: [build_job]
script:
- echo "Δοκιμές..."
deploy_production:
stage: deploy
needs: [test_job]
script:
- echo "Ανάπτυξη σε παραγωγή..."
when: manual # Διαθέσιμο μόνο μετά από επιτυχημένες δοκιμές
variables:
TARGET_ENVIRONMENT: "production" # Παράδειγμα: μεταβλητές για χειροκίνητη εργασία
Εδώ, η εργασία deploy_production θα είναι διαθέσιμη για χειροκίνητη εκκίνηση μόνο μετά την επιτυχή ολοκλήρωση της εργασίας test_job.
Επιπλέον:
variables: Οι χειροκίνητες εργασίες μπορούν να χρησιμοποιούν μεταβλητές που ορίζονται τόσο στο αρχείο.gitlab-ci.ymlόσο και στις ρυθμίσεις του έργου/ομάδας.rules: Πιο πολύπλοκα σενάρια εκτέλεσης μπορούν να χρησιμοποιούν το κλειδίrulesμαζί μεwhen: manualγια να ορίσουν τις συνθήκες υπό τις οποίες η χειροκίνητη εργασία γίνεται διαθέσιμη ή υποχρεωτική.- API: Οι χειροκίνητες εργασίες μπορούν επίσης να ξεκινήσουν μέσω του API του GitLab CI/CD.
Συνοπτικά, το when: manual είναι ο βασικός μηχανισμός για την υλοποίηση χειροκίνητης εκκίνησης εργασιών στο GitLab.