Using conditions to control job execution¶
Prevent a job from running unless your conditions are met.
Overview¶
You can use the jobs.<job_id>.if conditional to prevent a job from running unless a condition
is met.  You can use any supported context and expression to create a conditionals.  For more
information on which contexts are supported in this key, see “Contexts.”
When you use expressions in an if conditional, you can, optionaly, omit the ${{ }} expression
syntax because the orchestrator automatically evaluates the if conditional as an expression.  However,
this exception does not apply everywhere.
You must always use the ${{ }} expression syntax or escape with '', "", or () when the
expression starts with !, since ! is a reserved notation in YAML format.  For example:
if: ${{ ! startsWith(opentf.actor, 'ci-') }}
For more information, see “Expressions.”
Example: Only run job for specified actor
This example used if to control when the production-deploy job can run.  It will only run if
the user or trigger token is named production-deployer.  Otherwise, the job will be marked as
skipped.
metadata:
  name: example workflow
jobs:
  production-deploy:
    if: opentf.actor == 'production-deployer'
    runs-on: linux
    steps:
    - uses: actions/checkout@v2
      with:
        repository: https://git.example.com/foo.git
    - run: ./deploy.sh
Note
In some parts of the workflow you cannot use environment variables. Instead you can use contexts to access the value of an environment variable. For more information, see “Variables.”