Για μία εντολή σε πράκτορα Jenkins με Unix, βάλτε την ανάθεση μεσολάβησης σε αυτή την εντολή:

node('linux') {
    sh 'http_proxy=http://build-proxy.example:8080 https_proxy=http://build-proxy.example:8080 ./build.sh'
}

Το παράδειγμα υποθέτει ότι το αποθετήριο έχει σενάριο build και ότι τα εργαλεία του πράκτορα διαβάζουν αυτά τα ονόματα περιβάλλοντος. Οι αναθέσεις αντικαθιστούν κληρονομημένες τιμές για αυτή την εντολή και τα θυγατρικά της. Δεν ξαναγράφουν το μόνιμο περιβάλλον του μηχανήματος. Για ένα βήμα build που κατεβάζει δημόσια τεχνουργήματα μέσω επιτρεπόμενης διαδρομής χωρίς έλεγχο ταυτότητας μεσολάβησης, η λίστα μεσολαβητών HTTP μπορεί να προσφέρει υποψήφια τελικά σημεία HTTP για αυτές τις τιμές.

Αν πολλά βήματα Pipeline πρέπει να μοιράζονται την παράκαμψη, χρησιμοποιήστε ένα μπλοκ withEnv γύρω από αυτά τα βήματα. Το Jenkins τεκμηριώνει ότι ο χειρισμός μεταβλητών του δεν κάνει διάκριση πεζών-κεφαλαίων αλλά τα διατηρεί· ελέγξτε την ορθογραφία που προκύπτει όταν ένα εργαλείο Unix απαιτεί συγκεκριμένο όνομα με πεζά.

Ένα απλό export σε ένα βήμα sh ανήκει σε αυτό το κέλυφος. Ένα μεταγενέστερο ανεξάρτητο βήμα κελύφους είναι νέα διεργασία και δεν κληρονομεί τις αλλαγές του γειτονικού του.

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

Σχετικά άρθρα