运行 命令获取上一步 GitHub 操作的输出

Run command taking output from previous step on GitHub actions

我正在尝试执行一个 GitHub 操作来构建一个 Hugo 网站,将其部署在 Pinata 上并将最后一步的输出哈希保存到一个 txt 文件中。我设法实现了第一步和第二步。而且,对于第三个,我一直在尝试通过 运行 宁“回声”命令来做到这一点。但是,我收到此消息:“第 36 行的 yaml 语法有错误”

我如何运行 脚本从标识为“ipfs-pin”的步骤获取输出?

这是我的代码:

name: deploy
 on:
  push:
   branches: [ main ]
   pull_request:
   branches: [ main ]
   workflow_dispatch:
jobs:
 build:
  runs-on: ubuntu-latest
   steps:
   - uses: actions/checkout@master
   - uses: jakejarvis/hugo-build-action@master
     with:
      args: --minify --buildDrafts
   - uses: anantaramdas/ipfs-pinata-deploy-action@v1.6.4
     id: ipfs-pin
      with:
       pin-name: '[my-pin-name]'
       path: './public'
       pinata-api-key: [API Key]
       pinata-secret-api-key: [secret API Key]
       verbose: true
       remove-old: true
  saves-hash-on-file:
   runs-on: ubuntu-latest
    steps:
  - uses: actions/checkout@v2
  - uses: actions/setup-node@v2
    with:
      node-version: '14'
  - run: echo ${{steps.build.ipfs-pin.hash}} > /.github/ipfs-hash.txt

第一个

您的缩进似乎有问题,I reproduced the workflow在将工作流推送到存储库时更正它而不返回错误:

name: Deploy

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    outputs:
      hash: ${{ steps.ipfs-pin.outputs.hash }}
    steps:
      - uses: actions/checkout@master
      - uses: jakejarvis/hugo-build-action@master
        with:
          args: --minify --buildDrafts
      - uses: anantaramdas/ipfs-pinata-deploy-action@v1.6.4
        id: ipfs-pin
        with:
          pin-name: '[my-pin-name]'
          path: './public'
          pinata-api-key: '[API Key]'
          pinata-secret-api-key: '[secret API Key]'
          verbose: true
          remove-old: true

  saves-hash-on-file:
    runs-on: ubuntu-latest
    needs: [build]
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '14'
      - run: echo ${{steps.build.outputs.hash}} > /.github/ipfs-hash.txt

第二

正如您在上面的工作流程中看到的那样,我在作业 1(构建)级别添加了 outputs 字段,否则您无法在其他作业上共享输出。

Reference about outputs

此外,要在作业之间共享输出,您必须在作业 2(保存哈希文件)级别添加 needs: [build] 行。

注意:我无法 运行 它成功,因为我没有任何证书可以测试,但如果你 copy/paste 我分享的工作流程使用您的凭据。