{"meta":{"title":"在工作流程中使用任务","intro":"使用工作流程运行多个作业。","product":"GitHub Actions","breadcrumbs":[{"href":"/zh/actions","title":"GitHub Actions"},{"href":"/zh/actions/how-tos","title":"操作方法"},{"href":"/zh/actions/how-tos/write-workflows","title":"编写工作流"},{"href":"/zh/actions/how-tos/write-workflows/choose-what-workflows-do","title":"选择工作流执行的操作"},{"href":"/zh/actions/how-tos/write-workflows/choose-what-workflows-do/use-jobs","title":"使用作业"}],"documentType":"article"},"body":"# 在工作流程中使用任务\n\n使用工作流程运行多个作业。\n\n## 先决条件\n\n要在工作流中实现作业，你需要先了解什么是作业。 请参阅“[了解GitHub Actions](/zh/actions/get-started/understand-github-actions#jobs)”。\n\n## 设置作业的 ID\n\n使用 `jobs.<job_id>` 为作业提供唯一标识符。 键 `job_id` 是一个字符串，其值是作业配置数据的映射。 必须将 `<job_id>` 替换为对于 `jobs` 对象的唯一字符串。 `<job_id>` 必须以字母或 `_` 开头，并且只能包含字母数字字符、`-` 或 `_`。\n\n### 示例：创建作业\n\n在此示例中，已创建两个作业，其 `job_id` 值为 `my_first_job` 和 `my_second_job`。\n\n```yaml\njobs:\n  my_first_job:\n    name: My first job\n  my_second_job:\n    name: My second job\n```\n\n## 设置作业的名称\n\n使用 `jobs.<job_id>.name` 设置作业名称，该名称显示在 GitHub UI 中。\n\n## 定义必备作业\n\n使用 `jobs.<job_id>.needs` 标识运行此作业之前必须成功完成的所有作业。 它可以是一个字符串，也可以是字符串数组。 如果某个作业失败或跳过，则所有需要它的作业都会被跳过，除非这些作业使用让该作业继续的条件表达式。 如果某次运行包含一系列彼此依赖的作业，那么一旦某个作业失败或被跳过，从该作业开始，依赖链中的所有后续作业都会受到影响。 如果希望某个作业在其依赖的作业未成功时也能运行，请在 `always()` 中使用 `jobs.<job_id>.if` 条件表达式。\n\n### 示例：要求成功的依赖项作业\n\n```yaml\njobs:\n  job1:\n  job2:\n    needs: job1\n  job3:\n    needs: [job1, job2]\n```\n\n在此示例中，`job1` 必须在 `job2` 开始之前成功完成，并且 `job3` 等待 `job1` 和 `job2` 完成。\n\n此示例中的作业按顺序运行：\n\n1. `job1`\n2. `job2`\n3. `job3`\n\n### 示例：不要求成功的依赖项作业\n\n```yaml\njobs:\n  job1:\n  job2:\n    needs: job1\n  job3:\n    if: ${{ always() }}\n    needs: [job1, job2]\n```\n\n在此示例中，`job3` 使用 `always()` 条件表达式，确保始终在 `job1` 和 `job2` 完成（无论是否成功）后运行。 有关详细信息，请参阅“[对工作流和操作中的表达式求值](/zh/actions/reference/workflows-and-actions/expressions#status-check-functions)”。\n\n## 使用矩阵运行具有不同变量的作业\n\n若要自动运行具有不同变量组合（例如操作系统或语言版本）的作业，请在工作流中定义 `matrix` 策略。\n\n有关详细信息，请参阅“[在工作流中运行作业变体](/zh/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations)”。"}