Using jobs in a workflow
Use workflows to run multiple jobs.
In this article
Prerequisites
To implement jobs in your workflows, you need to understand what jobs are. SeeUnderstanding GitHub Actions.
Setting an ID for a job
Usejobs.<job_id>
to give your job a unique identifier. The keyjob_id
is a string and its value is a map of the job's configuration data. You must replace<job_id>
with a string that is unique to thejobs
object. The<job_id>
must start with a letter or_
and contain only alphanumeric characters,-
, or_
.
Example: Creating jobs
In this example, two jobs have been created, and theirjob_id
values aremy_first_job
andmy_second_job
.
jobs:my_first_job:name:Myfirstjobmy_second_job:name:Mysecondjob
Setting a name for a job
Usejobs.<job_id>.name
to set a name for the job, which is displayed in the GitHub UI.
Defining prerequisite jobs
Usejobs.<job_id>.needs
to identify any jobs that must complete successfully before this job will run. It can be a string or array of strings. If a job fails or is skipped, all jobs that need it are skipped unless the jobs use a conditional expression that causes the job to continue. If a run contains a series of jobs that need each other, a failure or skip applies to all jobs in the dependency chain from the point of failure or skip onwards. If you would like a job to run even if a job it is dependent on did not succeed, use thealways()
conditional expression injobs.<job_id>.if
.
Example: Requiring successful dependent jobs
jobs:job1:job2:needs:job1job3:needs: [job1,job2]
In this example,job1
must complete successfully beforejob2
begins, andjob3
waits for bothjob1
andjob2
to complete.
The jobs in this example run sequentially:
job1
job2
job3
Example: Not requiring successful dependent jobs
jobs:job1:job2:needs:job1job3:if:${{always()}}needs: [job1,job2]
In this example,job3
uses thealways()
conditional expression so that it always runs afterjob1
andjob2
have completed, regardless of whether they were successful. For more information, seeEvaluate expressions in workflows and actions.
Using a matrix to run jobs with different variables
To automatically run a job with different combinations of variables, such as operating systems or language versions, define amatrix
strategy in your workflow.
For more information, seeRunning variations of jobs in a workflow.