Предопределенные переменные окружения

В SourceCraft значения некоторых переменных окружения задаются автоматически. Вы можете использовать их в своих CI/CD-процессах.

Переменная

Описание

CI

Показывает, что задание выполняется в CI-окружении. Значение всегда true.

SOURCECRAFT_BASE_REF

Имя целевой ветки предложения изменений (ветки, в которую планируется внести правки). Например main или team/integration. Заполняется только при запуске проверок в предложении изменений и их перезапуске.

SOURCECRAFT_BASE_SHA

SHA-хэш коммита, по отношению к которому вычисляется список изменений. Принимает различные значения в зависимости от события, вызвавшего запуск рабочего процесса:

  • SHA-хэш предыдущего коммита в ветке в случае отправки изменений в ветку удаленного репозитория (on.push).
  • SHA-хэш последнего коммита в целевой ветке (merge-base) в случае создания предложения изменений (on.pull_request).
  • Пустое значение в случае ручного запуска CI/CD-процесса (manual).

SOURCECRAFT_CHECKOUT_ENABLED

Индикатор автоматического клонирования репозитория. Равно значению опции checkout:enabled. Значение по умолчанию — true.

SOURCECRAFT_CI

Показывает, что задание выполняется в CI/CD SourceCraft. Значение всегда true.

SOURCECRAFT_COMMIT_AUTHOR

Автор коммита. Передается в формате Имя email.

SOURCECRAFT_COMMIT_DESCRIPTION

Описание коммита. Если заголовок менее 100 символов — сообщение без заголовка. Иначе — сообщение целиком.

SOURCECRAFT_COMMIT_MESSAGE

Сообщение коммита.

SOURCECRAFT_COMMIT_REF

Полное имя ветки или тега (fully-formed ref name), которые вызвали запуск рабочего процесса. Например refs/heads/main или refs/tags/v1.1.

SOURCECRAFT_COMMIT_REF_NAME

Имя ветки или тега (short ref name), которые вызвали запуск рабочего процесса. Например main или v1.1.

SOURCECRAFT_COMMIT_SHA

SHA-хэш коммита, после которого запустился рабочий процесс.

SOURCECRAFT_COMMIT_SHORT_SHA

Первые 8 символов SOURCECRAFT_COMMIT_SHA.

SOURCECRAFT_COMMIT_TIMESTAMP

Временная метка коммита в формате ISO 8601, например 2025-03-03T23:41:19Z. По умолчанию в зоне UTC.

SOURCECRAFT_COMMIT_TITLE

Заголовок коммита. Первая строка сообщения.

SOURCECRAFT_COMMITTER

Пользователь (committer), который добавил коммит в целевую ветку. Передается в формате Имя email.

SOURCECRAFT_CUBE

Имя выполняемого кубика.

SOURCECRAFT_CUBE_ARTIFACTS

Список путей до артефактов кубика относительно SOURCECRAFT_WORKSPACE с ; в качестве разделителя. Определен только для кубиков с заданными артефактами.

SOURCECRAFT_CUBE_IMAGE

Используемый кубиком Docker-образ. Определен только для кубиков, которые используют контейнер.

SOURCECRAFT_ENV

Переменная, с помощью которой передаются переменные окружения от одного кубика к последующим в виде пар KEY=VALUE. Для записи в переменную используется оператор перенаправления ввода >>. Например:

cubes:
  - name: example
    script:
      - echo "VER=1.0.1" >> $SOURCECRAFT_ENV
      - echo "VAR1=SOME_VALUE" >> $SOURCECRAFT_ENV

Во всех кубиках, которые будут исполнены после кубика example, переданные значения будут находиться в переменных окружения VER и VAR1.

SOURCECRAFT_EVENT

Тип события-триггера, которое вызвало запуск рабочего процесса:

  • push — отправка изменений в ветку удаленного репозитория.
  • pull_request — создание предложения изменений.
  • restart — перезапуск CI/CD-процесса.
  • manual — ручной запуск CI/CD-процесса.

SOURCECRAFT_OUTPUT

Переменная, с помощью которой от одного кубика к другому передаются пары KEY=VALUE через блок outputs. Для записи в переменную используется оператор перенаправления ввода >>. Например:

on:
  pull_request:
    - workflows: output-test

workflows:
  output-test:
    tasks:
      - output-task

tasks:
  - name: output-task
    cubes:
      - name: env-input-cube
        script:
          - echo "my-name=my-value" >> $SOURCECRAFT_OUTPUT

      - name: env-output-cube
        env:
          # Подставьте в блок для получения значений outputs 
          # имя кубика с переменной, например env-input-cube.
          MY_ENV: "${{ cubes.<имя_кубика_с_переменной>.outputs.my-name }}"
        script:
          - echo $MY_ENV

SOURCECRAFT_ROOT_DIRECTORY

Путь до директории, в которой находятся связанные с выполняемым заданием файлы.

SOURCECRAFT_RUN_ID

Пользовательский номер запуска CI/CD SourceCraft. Монотонно возрастает. Можно использовать для версионирования.

SOURCECRAFT_TASK

Имя выполняемого задания.

SOURCECRAFT_TASK_DATA

Путь до директории, в которой находятся служебные файлы выполняемого задания.

SOURCECRAFT_TOKEN

Токен для аутентификации в API SourceCraft изнутри CI/CD-процесса. Пример получения списка задач пользователя:

on:
  push: test-workflow
workflows:
  test-workflow:
    tasks:
      - name: issues-task
        cubes:
          - name: i-have-got-issues
            script:
              - |
                curl -H "Authorization: Bearer $SOURCECRAFT_TOKEN" "https://api.sourcecraft.tech/me/issues" | jq

SOURCECRAFT_WORKFLOW

Имя выполняемого рабочего процесса.

SOURCECRAFT_WORKSPACE

Путь до директории, в которую клонируется репозиторий и которая по умолчанию назначается рабочей директорией (workdir) для кубиков с контейнером.

См. также