Ответ
Predefined variables (предопределенные переменные) в GitLab CI/CD — это набор переменных окружения, которые GitLab Runner автоматически устанавливает для каждого задания (job) в пайплайне. Они содержат контекстную информацию о сборке, проекте и среде выполнения.
Практическое использование в DevOps: Эти переменные позволяют создавать гибкие и универсальные пайплайны, не хардкодя специфичные значения.
Примеры ключевых переменных:
CI_COMMIT_REF_NAME: Имя ветки или тега, для которой запущен пайплайн. Используется для условного выполнения шагов (например, деплой только изmain).CI_PROJECT_DIR: Полный путь к директории клонированного репозитория на раннере.CI_JOB_TOKEN: Временный токен для аутентификации при взаимодействии с API GitLab (например, для скачивания артефактов).CI_DEFAULT_BRANCH: Имя ветки по умолчанию (например,main).
Пример .gitlab-ci.yml с их использованием:
stages:
- build
- deploy
build:
stage: build
script:
- echo "Building project $CI_PROJECT_NAME"
- docker build -t myapp:$CI_COMMIT_SHA .
# Сохраняем артефакт с динамическим именем
- echo "Build successful for $CI_COMMIT_REF_NAME" > build-info-$CI_PIPELINE_ID.txt
artifacts:
paths:
- build-info-*.txt
deploy_to_staging:
stage: deploy
script:
- |
if [ "$CI_COMMIT_REF_NAME" == "$CI_DEFAULT_BRANCH" ]; then
echo "Deploying to staging from $CI_COMMIT_REF_NAME..."
# Команда деплоя
else
echo "Skipping deploy for non-default branch."
fi
only:
- branches