Работа с переменными окружения в SourceCraft
В CI/CD-процессах SourceCraft поддерживаются переменные окружения. Доступны следующие области видимости переменных:
- Глобальная — переменные будут переданы во все кубики всех заданий во всех рабочих процессах.
- Рабочий процесс — переменные будут переданы во все кубики всех заданий конкретного рабочего процесса.
- Задание — переменные будут переданы во все связанные с заданием кубики.
- Кубик — переменные будут переданы только в конкретный кубик.
Переменные можно переиспользовать во вложенных областях видимости.
Также вы можете использовать предопределенные переменные окружения.
Важно
Не храните в переменных окружения конфиденциальные данные, например пароли, ключи доступа, токены и т. д. Для хранения таких данных используйте секреты.
Чтобы использовать переменные окружения в CI/CD-процессах:
-
Настройте CI/CD в репозитории.
-
В конфигурационном файле
.sourcecraft/ci.yamlв блоки с заданием (tasks) или кубиком (cubes) добавьте переменные окружения, например:# Здесь определяются переменные с глобальной областью видимости, # они будут переданы во все кубики всех заданий во всех рабочих процессах env: GLOBAL_VAR: global_var GLOBAL_SECRET: ${{ secrets.<название_секрета> }} workflows: my-workflow: # Здесь определяются переменные, которые будут доступны во всех кубиках # всех заданий рабочего процесса my-workflow env: WORKFLOW_VAR: workflow-var tasks: - name: my-task # Здесь определяются переменные, которые будут доступны во всех кубиках # внутри задания my-task env: TASK_ENV_VAR: This variable is available in all cubes of this task. # Многострочная переменная MULTILINE_VAR: | multi-var multi-var this is my multi-var cubes: - name: my-cube-1 # Здесь определяются переменные, которые будут доступны только внутри # кубика my-cube-1 env: CUBE_ENV_VAR: This variable is available only in cube my-cube-1. # Переменная, значение которой задается из секрета SECRET_VAR: ${{ secrets.<название_секрета> }} # Переиспользование переменных из глобальной области видимости, # например GLOBAL_VAR и GLOBAL_SECRET LOCAL_VAR: ${{ env.<глобальная_переменная_1> }} LOCAL_SECRET: ${{ env.<глобальная_переменная_2> }} # Переиспользование переменных из области видимости рабочего # процесса, например WORKFLOW_VAR LOCAL_VAR2: ${{ env.<переменная_рабочего_процесса> }} script: - echo "$TASK_ENV_VAR" - echo "$MULTILINE_VAR" - echo "$CUBE_ENV_VAR" - echo "$SECRET_VAR" - echo "$WORKFLOW_VAR" - echo "$LOCAL_VAR" - echo "$LOCAL_VAR2" - echo "$LOCAL_SECRET" - name: my-cube-2 # Здесь определяются переменные, которые будут доступны только внутри # кубика my-cube-2 env: CUBE_ENV_VAR: This variable is available only in cube my-cube-2. script: - echo "$TASK_ENV_VAR" - echo "$CUBE_ENV_VAR" # Использование предопределенной переменной - echo "$SOURCECRAFT_TASK" - echo "$WORKFLOW_VAR" - echo "$GLOBAL_VAR" - name: my-task-2 cubes: - name: my-cube-3 script: - echo "$WORKFLOW_VAR" - echo "$GLOBAL_VAR" -
Отправьте изменения в удаленный репозиторий.
-
Проверьте выполнение CI/CD-процесса.
См. также
Была ли статья полезна?
Предыдущая
Следующая