Этап GitLab группирует задания; у него нет отдельной процессной среды. Поместите прокси-переменные в задания, которым они нужны, при желании через многоразовый скрытый шаблон:

.proxy-environment:
  variables:
    HTTP_PROXY: "$CODE_PROXY"
    HTTPS_PROXY: "$CODE_PROXY"
    NO_PROXY: "localhost,127.0.0.1"

external_check:
  extends: .proxy-environment
  stage: test
  script:
    - python ci/check_external_service.py

CODE_PROXY передаётся через существующее управление переменными проекта. Для заданий, которым разрешён доступ к публичным сервисам через публичные прокси, его значение может использовать HTTP-эндпоинт из списка HTTP-прокси. Команда Python — это иллюстративная задача проекта. Другие задания могут опустить этот шаблон, и несколько заданий на одном этапе могут выбрать разные среды.

Оставьте эти имена прокси вне значений YAML по умолчанию верхнего уровня, если они не должны наследоваться широко. Также проверьте переменные проекта, группы и конвейера: их приоритет может переопределить значение YAML задания.

inherit:variables управляет наследованием переменных YAML по умолчанию. Он не удаляет переменные CI/CD проекта или группы, поэтому не является общим переключателем для удаления всех источников прокси.

Это настраивает процесс задания. HTTP-клиент, запущенный внутри него, должен поддерживать эти переменные, а более раннее соединение runner для загрузки образа имеет собственную конфигурацию.

Похожие статьи