现在,无论我在github项目页面中选择了什么分支,我都可以使用我的travis屏蔽来反映最新的运行或特定的分支。我可以通过在URL的末尾省略或指定分支名称来做到这一点。相反,我想获得与所选分支相对应的盾牌。换句话说,每次我选择一个不同的分支时,我的README.md
文件中travis shield的URL都会改变。
在SVN中,您可以使用SVN关键字通过使用分支名称(或类似名称)修改屏蔽URL来实现某种类型的操作。这个QA为git提供了一些替代方案,但是:
有任何想法吗?希望我只是缺少一些愚蠢的东西。像这样的感觉必须有一个非常简单的方法来做到这一点。
我为miniCRAN使用Travis构建盾牌,解决方案非常简单。
请注意在每个travis屏蔽链接的末尾添加?branch=...
。
这是README.md
的摘录:
**Build status**
master:
[![Build Status](https://travis-ci.org/andrie/miniCRAN.svg?branch=master)](https://travis-ci.org/andrie/miniCRAN)
release:
[![Build Status](https://travis-ci.org/andrie/miniCRAN.svg?branch=release)](https://travis-ci.org/andrie/miniCRAN)
dev: [![Build Status](https://travis-ci.org/andrie/miniCRAN.svg?branch=dev)](https://travis-ci.org/andrie/miniCRAN)
这导致:
建立状态
这不是一个完美的解决方案,但如果你已经从README.Rmd开始使用自述文件,那么就不会增加成本。基本上,您可以在README.Rmd中使用系统调用,根据您正在使用的任何分支动态生成Travis-CI屏蔽。只要您在推送之前始终使用knit
,它将是最新的并且是特定于分支的。 GitHub上。
这是一个简单的例子:
knit
结果将是这样的:
# Example README.Rmd
Here's a branch specific shield:
```{r, echo=FALSE, eval=TRUE, results="asis"}
travis_url <- "https://travis-ci.org/RevolutionAnalytics/miniCRAN.svg?branch="
shield <- paste0("[![Build Status](",
travis_url,
system("git rev-parse --abbrev-ref HEAD", intern = TRUE),
")](https://travis-ci.org/RevolutionAnalytics/miniCRAN)")
cat(shield)
```
但URL将指向您当前正在处理的任何分支。
注意:h / t到# Example README.Rmd
Here's a branch specific shield:
[![Build Status](https://travis-ci.org/RevolutionAnalytics/miniCRAN.svg?branch=master)](https://travis-ci.org/RevolutionAnalytics/miniCRAN)
用于检测当前分支名称的相关git命令。