先决条件
要在工作流中实现作业,你需要先了解什么是作业。 请参阅“了解 GitHub Actions”。
设置作业的 ID
使用 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
设置作业的名称
使用 jobs.<job_id>.name
设置作业名称,该名称显示在 GitHub UI 中。
定义必备作业
使用 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
完成(无论是否成功)后运行。 有关详细信息,请参阅“对工作流和操作中的表达式求值”。
使用矩阵运行具有不同变量的作业
若要自动运行具有不同变量组合(例如操作系统或语言版本)的作业,请在工作流中定义 matrix
策略。
有关详细信息,请参阅“在工作流中运行作业的变体”。