概要
注: スキップされたジョブでは、その状態が "成功" として報告されます。 必要なチェックであっても、pull request のマージを妨げるものではありません。
jobs.<job_id>.if
条件文を使って、条件が満たされなければジョブを実行しないようにできます。 条件文を作成するには、サポートされている任意のコンテキストや式が使えます。 このキーでサポートされているコンテキストの詳細については、「ワークフロー実行に関するコンテキスト情報へのアクセス」を参照してください。
注: jobs.<job_id>.if
条件は、jobs.<job_id>.strategy.matrix
が適用される前に評価されます。
if
条件の中で式を使う際には、任意で式構文 ${{ }}
を省略できます。これは、GitHub Actions が if
条件を式として自動的に評価するためです。 ただし、この例外はどこでも適用されるわけではありません。
!
は YAML 形式で予約された表記であるため、必ず${{ }}
構文の式を使用するか、式が !
で始まる場合は ''
、""
、または ()
でエスケープする必要があります。 次に例を示します。
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
スキップされたジョブでは、"このチェックはスキップされました" と表示されます。
注: ワークフローの一部では、環境変数を使用できません。 代わりに、コンテキストを使って環境変数の値にアクセスできます。 詳しくは、「変数に情報を格納する」を参照してください。