如何使jenkins构建状态徽章动态显示其文件的分支位于

时间:2020-10-15 15:12:46

标签: git jenkins github

我不确定摘要是否明确。我想做的是创建一个jenkins构建状态徽章url,它将以某种方式能够弄清它所在的Git分支,然后将正确的分支后缀动态添加到url中。

我想这样做,所以我可以创建一个自述文件,该文件始终显示该存储库的masterdevelop<branch-i'm-looking-at> jenkins版本,而无需手动更新徽章每个分支。

我知道如何创建特定于分支机构的构建状态标记。 Jenkins会自动为您构建降价网址。例如,我的一个develop分支之一如下:

[![Build Status](https://jenkins.mycompany.com/path/to/build/develop/badge/icon?subject=develop)]
(https://jenkins.mycompany.com/path/to/build/develop/)

我可以想象使用${BRANCH_NAME} jenkins env var会有所帮助,但是我想不出如何创建它。我对git hooks或其他脚本还没有足够的经验,甚至无法开始想出一种方法来实现它。

有人这样做吗?

1 个答案:

答案 0 :(得分:2)

我会维护 4 个 README,而不是创建一个 README,每个分支一个,每个都有自己的静态 Jenkins URL,为自己的分支量身定制。

例如,README 分支中的 develop 将具有 URL:

[![Build Status](https://jenkins.mycompany.com/path/to/build/develop/badge/icon?subject=develop)]
(https://jenkins.mycompany.com/path/to/build/develop/)

<块引用>

此外,这些是多分支管道,分支会来来去去。

然后我会考虑一个内容过滤器驱动程序。

这意味着只有 一个 README 文件中包含占位符值。
(“占位符值”:要替换的字符串。例如:@URL@

这允许您在本地生成正确的 README 文件,并在 git clone/git checkout 上自动生成。

生成脚本将:

  • 检测当前签出的分支
  • 用正确的“构建状态”网址替换 README 中的占位符值以生成正确的 README

为此,请注册(在 SDL_RenderDrawRect() 中).gitattributes declaration

content filter driver (图片来自“smudge”,来自“Customizing Git - Git Attributes”)

smudge 脚本将生成(自动,在 git checkoutgit switch 上)如上所述的实际 README 文件。
该脚本可以使用:

branch=$(git rev-parse --symbolic --abbrev-ref HEAD)

请参阅“Pro Git book”中的完整示例。

我还会添加一个 clean 过滤器以恢复原始 README 内容(占位符值),以免引入(从 git diff 的角度)任何差异。

git smudge/clean filter between branches

总结一下:

  • git checkout/restore 上,smudge 文件中声明的 .gitattributes 脚本被自动激活,并用正确的 URL 替换占位符值,以及分支名称
  • git diff/commit 上,clean 文件中声明的 .gitattributes 脚本自动激活,并用原始占位符值替换生成 URL。
相关问题