gpt4 book ai didi

Github 操作 : set-output does not seem to work

转载 作者:行者123 更新时间:2023-12-04 13:10:32 25 4
gpt4 key购买 nike

我有一个 workflow执行一堆模糊测试,最后计算所有文件的总数 crashers子目录。后来,在另一份工作中,我使用该号码向 Slack 发送通知。但是,出于某种原因,::set-output不产生任何输出,最重要的是,即使 crashers 的数量,下一个作业也不会运行。不是零!

jobs:
fuzz-nightly-test:
runs-on: ubuntu-latest
steps:
...
- name: Set crashers count
working-directory: test/fuzz
run: echo "::set-output name=crashers-count::$(find . -type d -name 'crashers' | xargs -I % sh -c 'ls % | wc -l' | awk '{total += $1} END {print total}')"
id: set-crashers-count

outputs:
crashers-count: ${{ steps.set-crashers-count.outputs.crashers-count }}

fuzz-nightly-fail:
needs: fuzz-nightly-test
if: ${{ needs.set-crashers-count.outputs.crashers-count != 0 }}
runs-on: ubuntu-latest
steps:
...
有谁知道我做错了什么?谢谢!

最佳答案

我用一个类似的最小例子做了一堆测试,我想我找到了问题所在。最直接,在您的 if您的 fuzz-nightly-fail 中的指令工作,您需要访问 needs.<job_id>.outputs.<job_output_id>而不是 needs.<step_id>.outputs.<job_output_id> .因此,if指令将变为 if: ${{ needs.fuzz-nightly-test.outputs.crashers-count != 0 }} .
此外,您可能应该制作一个与作业输出 ID 不同的步骤输出 ID,以免自己对在何处引用什么上下文对象产生混淆。所以,run你第一份工作中的陈述可能类似于 run: echo "::set-output name=count::$(find . -type d -name 'crashers' | xargs -I % sh -c 'ls % | wc -l' | awk '{total += $1} END {print total}')"并且作业输出也将更改为 crashers-count: ${{ steps.set-crashers-count.outputs.count }} .把这一切放在一起,我们得到

jobs:
fuzz-nightly-test:
runs-on: ubuntu-latest
steps:
...
- name: Set crashers count
working-directory: test/fuzz
run: echo "::set-output name=count::$(find . -type d -name 'crashers' | xargs -I % sh -c 'ls % | wc -l' | awk '{total += $1} END {print total}')"
id: set-crashers-count

outputs:
crashers-count: ${{ steps.set-crashers-count.outputs.count }}

fuzz-nightly-fail:
needs: fuzz-nightly-test
if: ${{ needs.fuzz-nightly-test.outputs.crashers-count != 0 }}
runs-on: ubuntu-latest
steps:
...
仅从文档中无法立即看出原因,而是示例 here意味着 <step_id>.outputs.foo不同于 <job_id>.outputs.foo - jobs.job1.outputs.output1定义为该工作的 steps.step1.outputs.test .
你可以看到一个(非常)最小的例子 here ,与其对应的工作流运行 here .

关于Github 操作 : set-output does not seem to work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65988652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com