GitHub actions 的官方徽章

37
GitHub是否有其新的“actions”功能的官方“徽章”?我在他们的官方存储库中发现了一个关于此请求的问题,并且似乎已经有一个官方的徽章。

GitHub是否有其新的“actions”功能的官方“徽章”?我在他们的官方存储库中发现了一个关于此请求的问题,并且似乎已经有一个官方的徽章:

https://github.com/{github_id}/{repository}/workflows/{workflow_name}/badge.svg

根据这个评论,但我无法使其正常工作。它确实在工作吗?当我使用它时,我得到以下输出:

Unrendered GitHub badge

请注意,我已经用我的username替换了{github_id},用我的repo名称替换了{repository},并将相应的workflow名称替换为{workflow_name}(删除大括号)。还有其他人遇到这个问题吗?
编辑:我正在私有repo上工作,如果有区别的话。


我怀疑由于您的存储库是私有的,您需要在URL中提供某种身份验证才能使其工作,这并不好,因为这将使您的存储库访问令牌暴露给查看HTML的任何人。也许创建一个测试存储库(公共的),看看是否有所不同。如果公共存储库的徽章有效,则知道问题是身份验证。 - rmunn
2
@rmunn,感谢您的回复。事实证明,“更新”徽章是一个非常缓慢的过程。我刚刚创建了另一个分支并开始做其他的事情。大约10-15分钟后,我注意到图像已经更新,但管道状态仍然是“未知”的。再过一段时间(我想大约10分钟左右),徽章变成了所需的绿色。与Azure管道等快速渲染相比,由于某种原因,这个渲染速度相当慢。 - J. Doe
1
太好了,很高兴它能正常工作。既然它能正常工作,我建议你回答自己的问题,然后等待48小时后再接受你自己的答案。这将让人们知道,如果他们在搜索中找到你的问题,那么这个问题不再等待答案。 - rmunn
@rmunn,说得对。很抱歉让您等了这么久,但我已经记录下了我的观察结果。我同意这是个好主意。 - J. Doe
你可以从你自己的代码库中去复制正确的 Markdown,步骤是:进入 Actions 标签页 > 选择对应的 workflow > 点击“Create status badge” 按钮。这个方法适用于我的私有和内部代码库。 - Kosala Nuwan Perera
5个回答

63

您可以通过在GitHub.com上导航到所需的工作流程,单击右侧的设置按钮(即工作流程搜索旁边带有3个点的按钮),然后单击创建状态徽章按钮来获取操作徽章。

enter image description here

在这里,您可以选择所需的分支事件的徽章,然后使用生成的Markdown代码。

例如,下面是我为我的派生的CI工作流的默认分支和事件生成的徽章:

Build and Deploy

上面徽章的Markdown:

[![Build and Deploy](https://github.com/kratostaine/spring-authorization-server/actions/workflows/continuous-integration-workflow.yml/badge.svg)](https://github.com/kratostaine/spring-authorization-server/actions/workflows/continuous-integration-workflow.yml)

1
不行,我的工作流是由workflow_dispatch触发的,徽章总是显示“构建失败”,即使构建成功了。 - Niklas Rosencrantz
顺便说一句,我写这篇文章的时候,在选择 Actions 下的工作流之后不再有"创建状态徽章"按钮了。好吧,我要修改我之前说的话。点击位于"筛选工作流运行"文本框右侧的三个点的按钮,会弹出一个下拉菜单,其中包括"创建状态徽章"和"禁用工作流"两个选项。 - Rod
1
感谢您的指出,@Rod。我已经相应地更新了答案。 - Madhu Bhat

12
事实证明,徽章的更新/渲染是一个缓慢的过程。在将徽章添加到我的README.md后,我就开始在另一个分支上工作了。大约10分钟后(至少在我的情况下),徽章出现了,但管道状态显示为“未知”。大约10分钟后,它再次更新,并显示正确的管道状态(在我这里是“通过”)。
所以,一旦你完成了,只需继续做其他事情,它会自动更新,在一段时间内完成。希望这可以帮助某些人!

是的,这需要改进。 - Ecto Ruseff

7

1
链接已失效,目前可以在https://docs.github.com/en/free-pro-team@latest/actions/managing-workflow-runs/adding-a-workflow-status-badge找到。 - stijn

6
我遇到了与工作流名称中包含空格的相关问题。这些名称必须使用URI转义:

从main.yml文件中:
name: Hello World

必须使用这样格式的URI:

https://github.com/{username}/{repository}/workflows/Hello%20World/badge.svg

这不是针对此处所描述问题的正确答案,但它是解决具有相同诊断问题的一个替代治疗方法 - 所以我希望它能帮助某些人。


-1
经过实际验证,我得出了以下解决方案:
解决方案1:您可以使用工作流程的名称`.yml`文件。
https://github.com/{username}/{repository}/workflows/{your_`.yml`_file_name}/badge.svg

演示

https://github.com/xgqfrms/ChatGPT/blob/main/.github/workflows/gp-pages.yml#L3

enter image description here

CI 是工作流文件名

https://github.com/xgqfrms/chatgpt/workflows/CI/badge.svg

enter image description here

解决方案2:按照GitHub文档进行操作
2.1 自动创建
演示 ✅
[![GitHub Actions Testing ✅](https://github.com/xgqfrms/cdn/actions/workflows/testing.yml/badge.svg)](https://github.com/xgqfrms/cdn/actions/workflows/testing.yml)

https://github.com/xgqfrms/cdn/actions/workflows/testing.yml

enter image description here

enter image description here

2.2 手动创建
https://github.com/<OWNER>/<REPOSITORY>/actions/workflows/<WORKFLOW_FILE>/badge.svg

https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge

演示

https://github.com/xgqfrms/cdn/blob/gh-pages/.github/workflows/testing.yml#L1

enter image description here

testing.yml 的文件名中包含 .yml

https://github.com/xgqfrms/cdn/actions/workflows/testing.yml/badge.svg

enter image description here

参考文献

https://github.com/xgqfrms/xgqfrms/issues/26


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