Примечание. В GitHub Enterprise Server в настоящее время не поддерживаются средства выполнения тестов, размещенные в GitHub. Дополнительные сведения о планируемой поддержке в будущем см. в GitHub public roadmap.
Обзор
Примечание. Пропущенное задание имеет состояние "Успешно". Это не помешает слиянию запроса на вытягивание, даже если это обязательная проверка.
Условное выражение jobs.<job_id>.if
можно использовать для предотвращения выполнения задания, если условие не выполняется. Для создания условного выражения можно использовать любой поддерживаемый контекст и любое выражение. Дополнительные сведения о том, какие контексты поддерживаются в этом ключе, см. в разделе "Доступ к контекстной информации о запусках рабочих процессов".
Примечание. Условие jobs.<job_id>.if
вычисляется перед jobs.<job_id>.strategy.matrix
применением.
При использовании выражений в условном if
режиме можно, при необходимости, опустить синтаксис выражения ${{ }}
, так как GitHub Actions автоматически вычисляет условное if
выражение как выражение. Однако это исключение не применяется везде.
Всегда следует использовать синтаксис выражения ${{ }}
{% концевого выражения %} или экранировать с ''
, ""
либо ()
когда выражение начинается с !
, так как !
зарезервировано нотация в формате YAML. Например:
{% raw %}
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
Дополнительные сведения см. в разделе "Оценка выражений в рабочих процессах и действиях".
Пример. Выполнение задания только для определенного репозитория
В этом примере используется if
для управления выполнением задания production-deploy
. Оно будет выполняться только в том случае, если репозиторий имеет имя octo-repo-prod
и находится в организации octo-org
. В противном случае задание будет отмечено как пропущенное.
name: example-workflow on: [push] jobs: production-deploy: if: github.repository == 'octo-org/octo-repo-prod' runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: '14' - run: npm install -g bats
name: example-workflow
on: [push]
jobs:
production-deploy:
if: github.repository == 'octo-org/octo-repo-prod'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
В пропущенном задании должно появиться сообщение "Эта проверка была пропущена".
Note
В некоторых частях рабочего процесса нельзя использовать переменные среды. Вместо этого можно использовать контексты для доступа к значению переменной среды. Дополнительные сведения см. в разделе Хранение сведений в переменных.