在Github上获取Travis Shield以反映选定的分支状态

时间:2015-09-24 01:23:37

标签: git github travis-ci

现在,无论我在github项目页面中选择哪个分支,我都可以让我的travis盾牌反映最新的运行或特定的分支。我可以通过在URL的末尾省略或指定分支名称来做到这一点。相反,我想获得与所选分支相对应的盾牌。换句话说,每次选择不同的分支时,README.md文件中travis shield的URL都会发生变化。

在SVN中,您可以使用SVN关键字通过使用分支名称(或类似名称)修改屏蔽URL来实现某种排序。这个QA为git提供了一些替代方案,但是:

  • 我更愿意避免依赖shell脚本
  • 我不认为关键字扩展会有效,因为我需要Github端的文件不同,而不是我的本地计算机(希望我对此错了)

有什么想法吗?希望我只是错过了一些愚蠢的东西。像这样的感觉必须有一个非常简单的方法。

2 个答案:

答案 0 :(得分:15)

我为miniCRAN使用Travis构建盾牌,解决方案非常简单。

请注意,在每个travis屏蔽链接的末尾添加了.avatars

以下是?branch=...

的摘录
README.md

这导致:

构建状态

主: Build Status 发布: Build Status dev:Build Status

答案 1 :(得分:4)

这不是一个完美的解决方案,但是如果你已经从README.Rmd knit了解自述文件,那么就不会增加成本。基本上,您可以在README.Rmd中使用系统调用,根据您正在使用的任何分支动态生成Travis-CI屏蔽。只要您始终{{1},它将是最新的并且是特定于分支的。在推送到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到this answer用于检测当前分支名称的相关git命令。