Для однієї команди на Unix-агенті Jenkins розмістіть призначення проксі в цій команді:

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

Приклад припускає, що в репозиторії є скрипт збірки, а інструменти агента читають ці імена середовища. Присвоєння замінюють успадковані значення для цієї команди та її дочірніх процесів. Вони не перезаписують постійне середовище машини. Для кроку збірки, що завантажує публічні артефакти дозволеним маршрутом без автентифікації проксі, список HTTP-проксі може запропонувати кандидатні HTTP-кінцеві точки для цих значень.

Якщо кілька кроків Pipeline мають спільно використовувати це перевизначення, використайте блок withEnv навколо цих кроків. Jenkins документує, що обробка змінних не враховує регістр, але зберігає його; перевірте отриманий правопис, коли інструмент Unix вимагає певне ім'я в нижньому регістрі.

Звичайний export в одному кроці sh належить цій оболонці. Пізніший незалежний крок оболонки — це новий процес, і він не успадковує зміни сусіднього кроку.

Застосовуйте налаштування там, де виконується команда. Завантаження контролера Jenkins і інструмент, запущений на віддаленому агенті, — різні мережеві споживачі. Успішна перевірка оновлень на контролері не доводить маршрут команди агента.

Схожі статті