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

问题描述 投票:10回答:2

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

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

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

有任何想法吗?希望我只是缺少一些愚蠢的东西。像这样的感觉必须有一个非常简单的方法来做到这一点。

git github travis-ci
2个回答
15
投票

我为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)

这导致:

建立状态

大师:Build Status发布:Build Status dev:Build Status


4
投票

这不是一个完美的解决方案,但如果你已经从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命令。

© www.soinside.com 2019 - 2024. All rights reserved.