我不确定摘要是否明确。我想做的是创建一个jenkins构建状态徽章url,它将以某种方式能够弄清它所在的Git分支,然后将正确的分支后缀动态添加到url中。
我想这样做,所以我可以创建一个自述文件,该文件始终显示该存储库的master
,develop
和<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或其他脚本还没有足够的经验,甚至无法开始想出一种方法来实现它。
有人这样做吗?
答案 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 (图片来自“”,来自“Customizing Git - Git Attributes”)
smudge
脚本将生成(自动,在 git checkout
或 git 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。