{"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/pass-job-outputs","title":"传递作业输出"}],"documentType":"article"},"body":"# 在作业之间传递信息\n\n可以定义输出以将信息从一个作业传递到另一个作业。\n\n## 定义和使用作业输出\n\n1. 打开包含要获取输出的作业的工作流文件。\n\n2. 使用 `jobs.<job_id>.outputs` 语法定义作业的输出。 例如，以下作业定义了 `output1` 和 `output2` 输出，这些输出分别对应 `step1` 和 `step2` 的结果：\n\n   ```yaml\n   jobs:\n     job1:\n       runs-on: ubuntu-latest\n       outputs:\n         output1: ${{ steps.step1.outputs.test }}\n         output2: ${{ steps.step2.outputs.test }}\n       steps:\n         - id: step1\n           run: echo \"test=hello\" >> \"$GITHUB_OUTPUT\"\n         - id: step2\n           run: echo \"test=world\" >> \"$GITHUB_OUTPUT\"\n   ```\n\n3. 在你想要访问这些输出的单独作业中，使用 `jobs.<job_id>.needs` 语法可使其依赖于原始作业。 例如，以下作业检查 `job1` 是否在运行前已完成：\n\n   ```yaml\n   jobs:\n     # Assume job1 is defined as above\n     job2:\n       runs-on: ubuntu-latest\n       needs: job1\n   ```\n\n4. 若要访问依赖作业中的输出，请使用 `needs.<job_id>.outputs.<output_name>` 语法。 例如，以下作业访问在 `output1` 中定义的 `output2` 和 `job1` 输出：\n\n   ```yaml\n   jobs:\n     # Assume job1 is defined as above\n     job2:\n       runs-on: ubuntu-latest\n       needs: job1\n       steps:\n         - env:\n             OUTPUT1: ${{needs.job1.outputs.output1}}\n             OUTPUT2: ${{needs.job1.outputs.output2}}\n           run: echo \"$OUTPUT1 $OUTPUT2\"\n   ```\n\n## 后续步骤\n\n若要详细了解作业输出和 `needs` 上下文，请参阅 [GitHub Actions 的工作流语法](/zh/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idoutputs) 的以下部分：\n\n* [`jobs.<job_id>.outputs`](/zh/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idoutputs)\n* [`jobs.<job_id>.needs`](/zh/actions/reference/workflows-and-actions/workflow-syntax#jobsjob_idneeds)\n\n若要详细了解如何将作业输出从一个工作流传递到另一个工作流，请参阅 [重用工作流](/zh/actions/how-tos/reuse-automations/reuse-workflows) 的以下部分：\n\n* [使用可重用工作流的输出](/zh/actions/how-tos/reuse-automations/reuse-workflows#using-outputs-from-a-reusable-workflow)"}