Définir un proxy pour une seule commande shell Unix de Jenkins
Remplacez l'environnement proxy d'une commande de build côté agent sans modifier le contrôleur ni les étapes sans rapport.
Pour une seule commande sur un agent Jenkins Unix, placez l'affectation du proxy sur cette commande :
node('linux') {
sh 'http_proxy=http://build-proxy.example:8080 https_proxy=http://build-proxy.example:8080 ./build.sh'
}L'exemple suppose que le dépôt contient un script de build et que les outils de l'agent lisent ces noms d'environnement. Les affectations remplacent les valeurs héritées pour cette commande et ses processus enfants. Elles ne réécrivent pas l'environnement persistant de la machine. Pour une étape de build qui récupère des artefacts publics via une route autorisée sans authentification proxy, la liste de proxys HTTP peut fournir des points de terminaison HTTP candidats pour ces valeurs.
Si plusieurs étapes Pipeline doivent partager ce remplacement, utilisez un bloc withEnv autour de ces étapes. Jenkins documente que sa gestion des variables ne distingue pas la casse mais la conserve ; vérifiez l'orthographe obtenue lorsqu'un outil Unix exige un nom précis en minuscules.
Un export simple dans une étape sh appartient à ce shell. Une étape shell indépendante ultérieure est un nouveau processus et n'hérite pas des modifications de sa voisine.
Appliquez le réglage là où la commande s'exécute. Les téléchargements du contrôleur Jenkins et un outil lancé sur un agent distant sont des consommateurs réseau distincts. Une vérification de mise à jour réussie sur le contrôleur n'établit pas la route de la commande de l'agent.