Работа с переменными окружения в SourceCraft

В CI/CD-процессах SourceCraft поддерживаются переменные окружения. Переменные можно задать в следующих элементах конфигурации .sourcecraft/ci.yaml:

  • Задание — переменные будут переданы во все связанные с заданием кубики.
  • Кубик — переменные будут переданы только в конкретный кубик.

Также вы можете использовать предопределенные переменные окружения.

Важно

Не храните в переменных окружения конфиденциальные данные, например пароли, ключи доступа, токены и т. д. Для хранения таких данных используйте секреты.

Чтобы использовать переменные окружения в CI/CD-процессах:

  1. Настройте CI/CD в репозитории.

  2. В конфигурационном файле .sourcecraft/ci.yaml в блоки с заданием (tasks) или кубиком (cubes) добавьте переменные окружения, например:

    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.<название_секрета> }}
                script:
                  - echo "$TASK_ENV_VAR"
                  - echo "$MULTILINE_VAR"
                  - echo "$CUBE_ENV_VAR"
                  - echo "$SECRET_VAR"
                  - echo "$WORKFLOW_VAR"
    
              - 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"
    
          - name: my-task-2
            cubes:
              - name: my-cube-3
                script:
                  - echo "$WORKFLOW_VAR"
    
  3. Отправьте изменения в удаленный репозиторий.

  4. Проверьте выполнение CI/CD-процесса.

См. также