如何在徽章中访问GitHub Action的输出

4

“outputs”指的是控制台日志吗?一个操作可能包含多个作业,每次执行操作都会有一个新的ID。您可以链接到一个操作,但不能链接到某个执行中某个作业的输出,这没有意义。 - Abhijit Sarkar
@AbhijitSarkar 我的意思是输出参数,例如 echo "::set-output name=action_fruit::strawberry - Konrad Höffner
1
我认为没有直接的方法来完成这个任务。但是,你可以使用Webhook或第三方服务来监听此事件,然后生成徽章。 - ThisaruG
@jessehouwing:这很奇怪,因为我认为输出恰好是从进程中出来并以某种方式可访问的东西。 - Konrad Höffner
@ThisaruG:这是标准的做法吗?因为有些操作会显示数字,我不知道它们是如何实现的。 - Konrad Höffner
显示剩余3条评论
3个回答

4

Github Actions 市场上的选择很少。

自定义徽章 - https://github.com/marketplace/actions/bring-your-own-badge

BYOB 是一个 GitHub Action,可以基于 GitHub Actions 的结果动态创建徽章,使得徽章非常灵活且易于维护。

如果您想使用https://shields.io/,请考虑 Dynamic Badges - https://github.com/marketplace/actions/dynamic-badges

该操作允许您使用 shields.io 为 README.md 创建徽章,这些徽章可能会随着每次提交而改变。为此,此操作不需要将任何内容推送到您的存储库!


嘿,我看到你在试图与我的答案进行比较。因此,我也会添加我的观点。个人而言,我喜欢尽可能少地依赖其他东西,我建议检查例如人生太短,不能依赖不稳定的软件。你的第二种解决方案并没有将任何内容推送到仓库中,而是创建了一个新的代码片段文件。从现在开始,该项目取决于外部文件,成为了一个新的依赖项。你的解决方案仍然很好。选择什么,不是0/1的决定,需要权衡自己的利弊得失。 - polkas
动态徽章看起来很棒,但我认为我不能使用它,因为它需要操作的用户首先创建一个GitHub要点并将其ID作为参数提供,这可能对他们来说太麻烦了。另一方面,BYOB会创建一个额外的分支,这也是我不想为简单的徽章打扰用户的原因。我会接受这个答案,因为现在似乎没有更好的方法,但我现在只会保留我的成功/失败徽章。 - Konrad Höffner

1
在同一工作流程的后续任务(步骤)中,您可以使用自己的标识,例如:https://img.shields.io。我想您会更新README文件以便每次操作完成后,更改步骤将成为工作流程的一部分。可以像这样完成输出的传输:在GitHub Action中在新任务中使用先前任务的输出结果
您将使用合适的SVG代码将图标加入到README中,例如:[![](https://img.shields.io/badge/TEXT-NUMBER-COLOR?style=flat)](some url)

我认为这可能是某人自己的工作流程的好方法,但是作为市场上可重复使用的操作,它可能会对用户过于侵入性或者不值得。不幸的是,目前似乎没有完美的方法来使用GitHub actions实现这一点。 - Konrad Höffner

0
我创建了一个操作来从工作流生成徽章:
生成徽章 - https://github.com/marketplace/actions/build-a-badge 正如其他用户所指出的,我不想要任何外部依赖项或在主仓库中创建新分支。因此,我使用的解决方法是将徽章数据存储在 Wiki 中,这是一个单独的存储库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接