Сведения о контекстах
Контексты — это способ доступа к сведениям о запусках рабочих процессов, переменных, средах выполнения, заданиях и шагах. Каждый контекст — это объект, содержащий свойства, которые могут быть строками или другими объектами.
Контексты, объекты и свойства во многом зависят от условий выполнения рабочего процесса. Например, контекст matrix
заполняется только для заданий в матрице.
Обращаться к контекстам можно с помощью синтаксиса выражений. Дополнительные сведения см. в разделе Оценка выражений в рабочих процессах и действиях.
${{ <context> }}
Предупреждение
При создании рабочих процессов и действий следует всегда учитывать, может ли код выполнять ненадежные входные данные от возможных злоумышленников. Некоторые контексты следует считать непроверенными, так как злоумышленники могут вставить собственное вредоносное содержимое. Дополнительные сведения см. в разделе Справочник по безопасному использованию.
Когда используются контексты
GitHub Actions включает коллекцию переменных, называемых контекстами _, и аналогичную коллекцию переменных, называемых _переменными по умолчанию. Эти переменные предназначены для использования в разных точках рабочего процесса:
- Переменные среды по умолчанию: эти переменные среды существуют только в средстве выполнения, выполняющего задание. Дополнительные сведения см. в разделе Хранение сведений в переменных.
- Контексты. Вы можете использовать большинство контекстов в любой точке рабочего процесса, включая, когда переменные по умолчанию будут недоступны. Например, можно использовать контексты с выражениями для выполнения начальной обработки перед маршрутизацией задания в средство выполнения тестов. Это позволяет использовать контекст с условным ключевым словом
if
, чтобы определить, следует ли выполнять шаг. После выполнения задания можно также извлечь переменные контекста из средства выполнения тестов, которое выполняет задание, напримерrunner.os
. Дополнительные сведения о том, где можно использовать различные контексты в рабочем процессе, см. в разделе Справочник по контекстам.
В следующем примере показано, как эти различные типы переменных можно использовать вместе в задании:
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"
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
переменную из средства выполнения.