Skip to main content

在作业之间传递信息

可以定义输出以将信息从一个作业传递到另一个作业。

定义和使用作业输出

  1. 打开要获取其输出的作业所在的工作流文件。

  2. 使用 jobs.<job_id>.outputs 语法定义作业的输出。 例如,以下作业定义了 output1output2 输出,这些输出分别对应 step1step2 的结果:

    jobs:
      job1:
        runs-on: ubuntu-latest
        outputs:
          output1: $
          output2: $
        steps:
          - id: step1
            run: echo "test=hello" >> "$GITHUB_OUTPUT"
          - id: step2
            run: echo "test=world" >> "$GITHUB_OUTPUT"
    
  3. 在你想要访问这些输出的单独作业中,使用 jobs.<job_id>.needs 语法可使其依赖于原始作业。 例如,以下作业检查 job1 是否在运行前已完成:

    jobs:
      # Assume job1 is defined as above
      job2:
        runs-on: ubuntu-latest
        needs: job1
    
  4. 若要访问依赖作业中的输出,请使用 needs.<job_id>.outputs.<output_name> 语法。 例如,以下作业访问在 job1 中定义的 output1output2 输出:

    jobs:
      # Assume job1 is defined as above
      job2:
        runs-on: ubuntu-latest
        needs: job1
        steps:
          - env:
              OUTPUT1: $
              OUTPUT2: $
            run: echo "$OUTPUT1 $OUTPUT2"
    

后续步骤

若要详细了解作业输出和 needs 上下文,请参阅 GitHub Actions 的工作流语法 的以下部分: