Skip to main content

Контексты

Узнайте о контекстах в GitHub Actions.

Сведения о контекстах

Контексты — это способ доступа к сведениям о запусках рабочих процессов, переменных, средах выполнения, заданиях и шагах. Каждый контекст — это объект, содержащий свойства, которые могут быть строками или другими объектами.

Контексты, объекты и свойства во многом зависят от условий выполнения рабочего процесса. Например, контекст matrix заполняется только для заданий в матрице.

Обращаться к контекстам можно с помощью синтаксиса выражений. Дополнительные сведения см. в разделе Оценка выражений в рабочих процессах и действиях.

${{ <context> }}

Предупреждение

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

Когда используются контексты

GitHub Actions включает коллекцию переменных, называемых контекстами _, и аналогичную коллекцию переменных, называемых _переменными по умолчанию. Эти переменные предназначены для использования в разных точках рабочего процесса:

  • Переменные среды по умолчанию: эти переменные среды существуют только в средстве выполнения, выполняющего задание. Дополнительные сведения см. в разделе Хранение сведений в переменных.
  • Контексты. Вы можете использовать большинство контекстов в любой точке рабочего процесса, включая, когда переменные по умолчанию будут недоступны. Например, можно использовать контексты с выражениями для выполнения начальной обработки перед маршрутизацией задания в средство выполнения тестов. Это позволяет использовать контекст с условным ключевым словом if, чтобы определить, следует ли выполнять шаг. После выполнения задания можно также извлечь переменные контекста из средства выполнения тестов, которое выполняет задание, например runner.os. Дополнительные сведения о том, где можно использовать различные контексты в рабочем процессе, см. в разделе Справочник по контекстам.

В следующем примере показано, как эти различные типы переменных можно использовать вместе в задании:

YAML
name: CI
on: push
jobs:
  prod-check:
    if: ${{ github.ref == 'refs/heads/main' }}
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

В этом примере инструкция if проверяет контекст github.ref, чтобы определить имя текущей ветви; если используется имя refs/heads/main, то выполняются последующие шаги. Проверка if обрабатывается GitHub Actions, и задание отправляется в средство выполнения тестов только в том случае, если результат равен true. После отправки задания в средство выполнения выполняется шаг и ссылается на $GITHUB_REF переменную из средства выполнения.