Prerequisites
To implement jobs in your workflows, you need to understand what jobs are. See Understanding GitHub Actions.
Setting an ID for a job
使用 jobs.<job_id>
为作业提供唯一标识符。 键 job_id
是一个字符串,其值是作业配置数据的映射。 必须将 <job_id>
替换为对于 jobs
对象的唯一字符串。 <job_id>
必须以字母或 _
开头,并且只能包含字母数字字符、-
或 _
。
示例:创建作业
在此示例中,已创建两个作业,其 job_id
值为 my_first_job
和 my_second_job
。
jobs:
my_first_job:
name: My first job
my_second_job:
name: My second job
Setting a name for a job
使用 jobs.<job_id>.name
设置作业名称,该名称显示在 GitHub UI 中。
Defining prerequisite jobs
使用 jobs.<job_id>.needs
标识运行此作业之前必须成功完成的所有作业。 它可以是一个字符串,也可以是字符串数组。 如果某个作业失败或跳过,则所有需要它的作业都会被跳过,除非这些作业使用让该作业继续的条件表达式。 如果运行包含一系列相互需要的作业,则故障或跳过将从故障点或跳过点开始,应用于依赖项链中的所有作业。 如果希望某个作业在其依赖的作业未成功时也能运行,请在 jobs.<job_id>.if
中使用 always()
条件表达式。
示例:要求成功的依赖项作业
jobs:
job1:
job2:
needs: job1
job3:
needs: [job1, job2]
在此示例中,job1
必须在 job2
开始之前成功完成,并且 job3
等待 job1
和 job2
完成。
此示例中的作业按顺序运行:
job1
job2
job3
示例:不要求成功的依赖项作业
jobs:
job1:
job2:
needs: job1
job3:
if: ${{ always() }}
needs: [job1, job2]
在此示例中,job3
使用 always()
条件表达式,确保始终在 job1
和 job2
完成(无论是否成功)后运行。 有关详细信息,请参阅“对工作流和操作中的表达式求值”。
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 a matrix
strategy in your workflow.
For more information, see Running variations of jobs in a workflow.