context

${{ vars.* }} / ${{ inputs.* }}

`vars` exposes non-secret configuration variables defined at the repository, environment, or organization level. `inputs` exposes typed parameters passed to `workflow_dispatch`, `workflow_call`, or composite actions.

${{ vars.<NAME> }}   ${{ inputs.<name> }}

Common values / subkeys

Value / Subkey Purpose
vars.<NAME> Non-secret config variable (visible in logs)
inputs.<name> Typed input from workflow_dispatch / workflow_call / composite
type: string|boolean|number|choice|environment Input types allowed on workflow_dispatch
required / default Per-input required flag and default value

Examples

on:
  workflow_dispatch:
    inputs:
      env:
        type: choice
        options: [dev, prod]
        required: true

Typed manual input

run: deploy --env ${{ inputs.env }} --region ${{ vars.AWS_REGION }}

Combine inputs and vars in a run step

on:
  workflow_call:
    inputs:
      version: {required: true, type: string}

Declare inputs for a reusable workflow

if: ${{ inputs.dry_run == true }}

Boolean inputs from workflow_dispatch are true booleans

Gotcha

`vars` are NOT masked and are readable by anyone with workflow access — never store credentials there; boolean inputs may arrive as the string `'true'` when a reusable-workflow caller passes a stringified value.

Related keywords

← All GitHub Actions syntax · Git commands · Cron syntax