# #deployment #gitlab #continuous-integration #gitlab-ci #pipeline
Вопрос:
Я пытаюсь перенести конвейер BitBucket в GitLab. В BitBucket мы используем другой набор переменных среды для каждого развертывания (промежуточного/производственного и т.д.).
Я не знаю, как указать это в GitLab.
Я настроил только групповые переменные и переменные, относящиеся к репозиторию, но я не нашел, как переопределить, например, имя БД для разных развертываний.
Заранее благодарю вас за вашу помощь.
Ответ №1:
Вы можете определить переменные и ограничить их область действия
По умолчанию все переменные CI/CD доступны для любого задания в конвейере. Поэтому, если проект использует скомпрометированный инструмент в тестовом задании, он может предоставить доступ ко всем переменным CI/CD, которые использовались в задании развертывания. Это распространенный сценарий атак на цепочки поставок.
GitLab помогает смягчать атаки на цепочки поставок, ограничивая область действия переменной среды.
GitLab делает это, определяя, для каких сред и соответствующих заданий может быть доступна переменная.
Смотри «Определение областей применения со спецификациями«и «Выражение переменной CI/CD»
deploy:
script: cap staging deploy
environment: staging
only:
variables:
- $RELEASE == "staging"
- $STAGING