【发布时间】: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