Наладзіць проксі для адной каманды Unix shell у Jenkins
Перакрыць асяроддзе проксі для адной каманды зборкі на баку агента, не змяняючы кантролер або непаўзаныя этапы.
Для адной каманды на агентным вузле Jenkins з Unix пастаўце прызначэнне проксі на гэтую каманду:
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 належыць гэтаму shell. Наступны незалежны крок shell — гэта новы працэс, і ён не атрымлівае змен, зробленых суседнім крокам.
Ужывайце наладу там, дзе выконваецца каманда. Загрузкі кантролера Jenkins і інструмент, запушчаны на аддаленым агентным вузле, — розныя спажыўцы сеткі. Паспяховая праверка абнаўлення на кантролеры не даказвае маршрут каманды агента.