Definir un proxy para un solo comando de shell Unix de Jenkins
Sustituya el entorno de proxy de un comando de compilación en el agente sin cambiar el controlador ni las etapas no relacionadas.
Para un solo comando en un agente de Jenkins con Unix, ponga la asignación del proxy en ese comando:
node('linux') {
sh 'http_proxy=http://build-proxy.example:8080 https_proxy=http://build-proxy.example:8080 ./build.sh'
}El ejemplo supone que el repositorio tiene un script de compilación y que las herramientas del agente leen estos nombres de entorno. Las asignaciones reemplazan los valores heredados para ese comando y sus procesos hijos. No reescriben el entorno persistente de la máquina. Para un paso de compilación que descarga artefactos públicos por una ruta permitida sin autenticación de proxy, la lista de proxies HTTP puede aportar puntos de conexión HTTP candidatos para esos valores.
Si varios pasos de Pipeline deben compartir la sustitución, use un bloque withEnv alrededor de esos pasos. Jenkins documenta que su manejo de variables no distingue mayúsculas de minúsculas, pero las conserva; compruebe la ortografía resultante cuando una herramienta Unix exija un nombre concreto en minúsculas.
Un export simple en un paso sh pertenece a ese shell. Un paso de shell independiente posterior es un proceso nuevo y no hereda los cambios de su vecino.
Aplique el ajuste donde se ejecuta el comando. Las descargas del controlador de Jenkins y una herramienta lanzada en un agente remoto son consumidores de red distintos. Una comprobación de actualización correcta en el controlador no demuestra la ruta del comando del agente.