GitHub Actions by Example: Outputs

可以在 jobs 和 steps 之间共享数据

name: outputs
on:
  push:
jobs:
  job1:
    runs-on: ubuntu-latest
    steps:
      -
        name: Do Work

使用这种写入到stdout的形式为步骤(step)创造输出(outputs) ::set-output name=<name>::<value>. 一个步骤中可能会有多个输出

        run: |
          echo '::set-output name=FAV_NUMBER::3'
          echo '::set-output name=FAV_COLOR::blue'          

创建输出的步骤必须具有独一无二的id

        id: abc
      -
        name: Read output

使用 steps 文本变量(context variable) 加步骤id以取得值

        run: |
          echo "${{steps.abc.outputs.FAV_NUMBER}}"
          echo "${{steps.abc.outputs.FAV_COLOR}}"          

为一个job创建的输出可以在其他的参数 needs 含有此 job 的 job 中可用(详见 Job Ordering).

    outputs:
      fav-animal: tiger
      fav-number: ${{steps.abc.outputs.FAV_NUMBER}}
  job2:
    runs-on: ubuntu-latest
    needs: job1
    steps:
      - run: |
        echo "${{needs.job1.outputs.fav-animal}}"
        echo "${{needs.job1.outputs.fav-number}}"        

下一个例子:Context Variables