【问题标题】:GitHub Actions: capture multiple console lines from Gradle commandGitHub Actions:从 Gradle 命令捕获多个控制台行
【发布时间】:2021-03-20 12:39:46
【问题描述】:

我在ubuntu-latest 上有一个类似下面的工作:

- name: Run Gradle
  id: run_gradle
  run: |
    echo "::set-output name=JOB::$(gradle run)\n"

- name: Test output
  run: echo "${{ steps.run_gradle.outputs.JOB }}"

这会运行一个 Gradle 任务,将数千条单独的行输出到控制台。如何捕获步骤run_gradle 的所有输出?我的下一个目标是将这些行传递给另一个工作流程,以解析并挑选出相关行进行后续分析。

作为测试,我尝试在后续步骤Test output 中捕获并重新打印来自run_gradle 的输出。但是,这一步run: echo "${{ steps.run_match.outputs.JOB }}" 只是返回echo ""

此外,在尝试以下步骤时:

- name: Test output
  run: |
    while read -r LINE; do
    $LINE
    echo "$LINE"
    # do_something_with_it
    done < <(${{ steps.run_gradle.outputs.JOB }})

我从 GitHub Actions 收到以下错误:

Run while read -r LINE; do
  while read -r LINE; do
  $LINE
  echo "$LINE"
  # do_something_with_it
  done < <()
  shell: /bin/bash -e {0}
  env:
    JAVA_HOME_8.0.275_x64: /opt/hostedtoolcache/jdk/8.0.275/x64
    JAVA_HOME: /opt/hostedtoolcache/jdk/8.0.275/x64
    JAVA_HOME_8_0_275_X64: /opt/hostedtoolcache/jdk/8.0.275/x64
/home/runner/work/_temp/214ad176-0c5e-4903-a0b3-58969be12e44.sh: line 5: <(): ambiguous redirect

这对我来说意味着set-output:JOB 无法将输出捕获到变量中。

【问题讨论】:

    标签: bash gradle github-actions


    【解决方案1】:

    它只是打印行,因为你调用了echo,而不是命令本身。

    您可以通过以下方式调用它:

    run: ${{ steps.run_gradle.outputs.JOB }}
    

    但它完全运行,就像一个大 cmd。所以更可取的方式是。将输出放到文件中,然后逐行执行。

    - name: Gradle
      run: |
        gradle run >/tmp/gradle.out
    - name: Test
      run: |
        while read -r LINE; do
          $LINE 
          # do_something_with_it
        done < /tmp/gradle.out
    

    顺便说一句,你有拼写错误 steps.run_match 而不是 steps.run_gradle 总之,它可以解释空输出,如果是这样的话。

    【讨论】:

    • 感谢您的帮助 - 不幸的是,我尝试了您的解决方案但无济于事。我编辑了我的问题以进行演示。还要感谢您指出错字 - 我在 SO 上更正了。
    • 好的,我知道放样会有问题,可能是太长了。我不知道真正的输出。但是我编辑了我的答案以使用临时文件,如果您不坚持使用变量,它应该可以正常工作。
    猜你喜欢
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2020-04-09
    相关资源
    最近更新 更多