Get Travis Shield on Github to Reflect Selected Branch Status

空扰寡人 提交于 2019-11-30 07:03:30
Andrie

I make use of Travis build shields for miniCRAN, and the solution is quite simple.

Note the addition of ?branch=... at the end of each travis shield link.

Here is an extract from the 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)

This results in:

Build status

master:

release:

dev:

Thomas

This is not a perfect solution, but if you're already knit-ing your README from a README.Rmd, there's no added cost. Basically, you can use a system call in your README.Rmd to dynamically generate the Travis-CI shield based on whatever branch you're working in. It will be up to date and branch-specific as long as you always knit before pushing to GitHub.

Here's a simple example:

# 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)
```

The result will be like this:

# 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)

but the URL will point to whatever branch you're currently working on.

Note: h/t to this answer for the relevant git command to detect the current branch name.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!