curity features  ](/en/actions/security-guides/using-githubs-security-features-to-secure-your-use-of-github-actions)
    * [ Automatic token authentication  ](/en/actions/security-guides/automatic-token-authentication)

  * Creating actions 

    * [ About custom actions  ](/en/actions/creating-actions/about-custom-actions)
    * [ Create a Docker container action  ](/en/actions/creating-actions/creating-a-docker-container-action)
    * [ Create a JavaScript action  ](/en/actions/creating-actions/creating-a-javascript-action)
    * [ Create a composite action  ](/en/actions/creating-actions/creating-a-composite-action)
    * [ Metadata syntax  ](/en/actions/creating-actions/metadata-syntax-for-github-actions)
    * [ Dockerfile support  ](/en/actions/creating-actions/dockerfile-support-for-github-actions)
    * [ Set exit codes  ](/en/actions/creating-actions/setting-exit-codes-for-actions)
    * [ Publish in GitHub Marketplace  ](/en/actions/creating-actions/publishing-actions-in-github-marketplace)
    * [ Share from your private repository  ](/en/actions/creating-actions/sharing-actions-and-workflows-from-your-private-repository)
    * [ Share with your organization  ](/en/actions/creating-actions/sharing-actions-and-workflows-with-your-organization)
    * [ Release and maintain actions  ](/en/actions/creating-actions/releasing-and-maintaining-actions)
    * [ CLI setup action  ](/en/actions/creating-actions/developing-a-third-party-cli-action)

  * [ Guides for GitHub Actions  ](/en/actions/guides)

  * [ GitHub Actions ](/en/actions "GitHub Actions") / 
  * [ Using workflows ](/en/actions/using-workflows "Using workflows") / 
  * [ Workflow syntax ](/en/actions/using-workflows/workflow-syntax-for-github-actions "Workflow syntax")

#  Workflow syntax for GitHub Actions

A workflow is a configurable automated process made up of one or more jobs.
You must create a YAML file to define your workflow configuration.

##  In this article

  * About YAML syntax for workflows 
  * name 
  * run-name 
  * on 
  * on.<event_name>.types 
  * on.<pull_request|pull_request_target>.<branches|branches-ignore>
  * on.push.<branches|tags|branches-ignore|tags-ignore>
  * on.<push|pull_request|pull_request_target>.<paths|paths-ignore>
  * on.schedule 
  * on.workflow_call 
  * on.workflow_call.inputs 
  * on.workflow_call.inputs.<input_id>.type 
  * on.workflow_call.outputs 
  * on.workflow_call.secrets 
  * on.workflow_call.secrets.<secret_id>
  * on.workflow_call.secrets.<secret_id>.required 
  * on.workflow_run.<branches|branches-ignore>
  * on.workflow_dispatch 
  * on.workflow_dispatch.inputs 
  * on.workflow_dispatch.inputs.<input_id>.required 
  * on.workflow_dispatch.inputs.<input_id>.type 
  * permissions 
  * env 
  * defaults 
  * defaults.run 
  * defaults.run.shell 
  * defaults.run.working-directory 
  * concurrency 
  * jobs 
  * jobs.<job_id>
  * jobs.<job_id>.name 
  * jobs.<job_id>.permissions 
  * jobs.<job_id>.needs 
  * jobs.<job_id>.if 
  * jobs.<job_id>.runs-on 
  * jobs.<job_id>.environment 
  * jobs.<job_id>.concurrency 
  * jobs.<job_id>.outputs 
  * jobs.<job_id>.env 
  * jobs.<job_id>.defaults 
  * jobs.<job_id>.defaults.run 
  * jobs.<job_id>.defaults.run.shell 
  * jobs.<job_id>.defaults.run.working-directory 
  * jobs.<job_id>.steps 
  * jobs.<job_id>.steps[*].id 
  * jobs.<job_id>.steps[*].if 
  * jobs.<job_id>.steps[*].name 
  * jobs.<job_id>.steps[*].uses 
  * jobs.<job_id>.steps[*].run 
  * jobs.<job_id>.steps[*].working-directory 
  * jobs.<job_id>.steps[*].shell 
  * jobs.<job_id>.steps[*].with 
  * jobs.<job_id>.steps[*].with.args 
  * jobs.<job_id>.steps[*].with.entrypoint 
  * jobs.<job_id>.steps[*].env 
  * jobs.<job_id>.steps[*].continue-on-error 
  * jobs.<job_id>.steps[*].timeout-minutes 
  * jobs.<job_id>.timeout-minutes 
  * jobs.<job_id>.strategy 
  * jobs.<job_id>.strategy.matrix 
  * jobs.<job_id>.strategy.matrix.include 
  * jobs.<job_id>.strategy.matrix.exclude 
  * jobs.<job_id>.strategy.fai