【问题标题】:How to access GitHub action output in a badge如何在徽章中访问 GitHub 操作输出
【发布时间】:2022-08-18 13:15:38
【问题描述】:

我有一个输出数字的 GitHub 操作工作流,我想在徽章中显示它。

使用https://github.com/username/reponame/actions/workflows/myaction.yml/badge.svg 我得到一个红色或绿色的失败/成功徽章,但我想显示失败的数量,工作流将其输出到“错误”输出变量中。

如何在徽章中访问该变量?

  • “输出”是指控制台的日志吗?一个动作中可能有多个作业,并且动作的每次执行都有一个新的 id。您可以链接到某个操作,但不能链接到某个执行的某个操作的某些作业的输出,这是没有意义的。
  • @AbhijitSarkar 我的意思是输出参数,例如echo \"::set-output name=action_fruit::strawberry
  • echo 准确地登录到控制台,我的评论是正确的。
  • 我不认为有一种简单的方法可以做到这一点。但是,您可以使用 webhook 或 3rd 方服务来收听此事件,然后生成徽章。
  • 是的。完成后无法轻松访问工作流中的变量。您的工作流程可能有一个操作来生成徽章并将其存储在某处或更新某种 blob/文件存储提供程序中的值。

标签: github-actions badge


【解决方案1】:

Github 操作市场中的选项很少

带上你自己的徽章 - https://github.com/marketplace/actions/bring-your-own-badge

BYOB 是一种 GitHub Action,可根据 GitHub Actions 的结果动态创建徽章,从而实现极其通用且易于维护的徽章。

如果您想使用https://shields.io/,请考虑动态徽章 - https://github.com/marketplace/actions/dynamic-badges

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

【讨论】:

  • 嘿,我看到您尝试与我的答案进行比较。所以我也会补充一下我的观点。就我个人而言,我喜欢尽可能少的依赖,我建议检查例如Life is too short to depend on unstable software。您的第二个解决方案不会将任何内容推送到存储库,但它会创建一个新的 gist 文件。所以从现在开始项目依赖于外部文件,新的依赖。您的解决方案仍然很好。选择什么不是0/1的决定,因为某人必须权衡自己的利弊。
  • 动态徽章看起来很棒,但我认为我不能使用它,因为它需要操作的用户首先创建一个 GitHub gist 并提供 id 作为参数,这对他们来说可能太麻烦了。另一方面,BYOB 将创建一个额外的分支,我也不想仅仅为了一个简单的徽章而打扰用户。我会接受这个答案,因为现在似乎没有更好的方法,但我暂时将我的徽章保持为成功/失败。
【解决方案2】:

在同一工作流程中的后续作业(步骤)中,您可以。 我认为您想使用自己的徽章,例如https://img.shields.io。 我想你会更新,例如每次操作完成时的 README 文件,更新步骤将成为工作流程的一部分。输出的传输可以像这里Using output from a previous job in a new one in a GitHub Action 一样完成。

您将附加例如带有适当 svg [![](https://img.shields.io/badge/TEXT-NUMBER-COLOR?style=flat)](some url) 的 README。

【讨论】:

  • 我认为这对于某人自己的工作流程来说可能是一个很好的方法,但是我认为作为市场上可重用的操作,它对用户来说过于侵入或不值得。不幸的是,现在似乎没有完美的方法可以通过 GitHub 操作来做到这一点。
【解决方案3】:

我创建了一个从工作流生成徽章的操作:

建造徽章 - https://github.com/marketplace/actions/build-a-badge

正如其他用户所指出的,我不想要任何外部依赖项或在主仓库上创建新分支。所以我使用的解决方法是将徽章数据存储在 Wiki 中,这是一个单独的存储库。

【讨论】:

    猜你喜欢
    • 2020-01-03
    • 2020-01-20
    • 2019-05-29
    • 2021-12-28
    • 1970-01-01
    • 2018-08-14
    • 2021-11-08
    • 2020-03-30
    • 2022-01-13
    相关资源
    最近更新 更多