• Stars
    star
    99
  • Rank 343,315 (Top 7 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

How to add badge (eg: Travis-CI & GoReportCard & Coveralls & Codecov ) in Github README.

如何在 README 里面添加徽章 (Travis-CI & GoReportCard & Coveralls ...)

Build Status Go Report Card Documentation Coverage Status GitHub issues license Release

作为一个 Golang 开发者,应该都知道 TiDB 吧,如果你不知道,那我只能说赶紧去了解了解吧。

在 TiDB README 上大家应该都能看到这些徽章:

Build Status Go Report Card Project Status CircleCI Status Coverage Status

你是不是也很想在你的 Github 项目上也加上呢?你会觉得难吗?

我今天就是来告诉大家怎么做的,希望能帮助到你。

徽章在 Github 上配置起来非常简单,但是有可能你是基于 Gitlab 的私有仓库,那这篇文章可能会对你有帮助。

废话不多说,我先来简单介绍一下这3个徽章是什么。

Stargazers over time

Stargazers over time

Travis-CI 是什么?

Travis-CI 是国外的开源持续集成构建项目,支持 Github 项目,通过 yml 配置来驱动执行相对应的持续集成脚本。对于 Github 的项目支持起来非常简单,开通 Travis 后只需要你在自己的项目根目录下增加.travis.yml就好了。

GoReportCard 是什么?

GoReportCard 是一个可视化展示 Go 语言项目的检测报告服务。

Coveralls 是什么?

Coveralls 是一个自动化测试覆盖率的服务,它能提供代码覆盖率并且给以友好的展现。


添加Build Status

这里用到的就是Travis-CI。

开通Travis

打开 travis 官网:https://travis-ci.org/

travis-ci 官网首页截屏

使用github账号授权登录。

添加项目,这里使用我的 Golang 示例项目。

项目选择

整个 ci 的过程有以下几步:

  1. 在 travis-ci 你的 profile 页面,勾选上你要持续集成的项目
  2. 在你的 Github 项目根目录下添加.travis.yml,Travis-CI会按照.travis.yml里的内容进行构建
  3. 提交.travis.yml到 Github,自动触发持续集成,
  4. 你可以到travis-ci-status 查看结果

下面给一个我的.travis.yml例子:

language: go # 声明构建语言环境
sudo: false # 开启基于容器的Travis CI任务,让编译效率更高。

notifications: # 每次构建的时候是否通知,如果不想收到通知,那就设置false吧(email: false,也可以是Slack)
  email:
    recipients:
      - [email protected]
  slack: xxxx:xxxxxxxxxx
  on_success: change
  on_failure: always

go:
  - 1.9.2

install: #依赖安装
  - go get github.com/go-playground/overalls #overalls能够支持到各级子目录
  - go get github.com/mattn/goveralls #goveralls是coveralls对golang的测试覆盖率支持命令
  - go get github.com/smartystreets/goconvey#很好用的测试工具
  - mkdir -p $GOPATH/src/github.com/yangwenmai
  - cd $GOPATH/src/github.com/yangwenmai/how-to-add-badge-in-github-readme

script: # 集成脚本
    - overalls -project=github.com/yangwenmai/how-to-add-badge-in-github-readme -covermode=count -ignore='.git,_vendor'
    - goveralls -coverprofile=overalls.coverprofile -service=travis-ci -repotoken $COVERALLS_TOKEN
    - go test -race -coverprofile=coverage.txt -covermode=atomic # 注意要添加这一行,否则不会出现 codecov bot
    - go test ./...

after_success:
  - bash <(curl -s https://codecov.io/bash)

env: #env环境变量设置,travis提供的repo_token安全方式
  global:
    secure: "xxxx"

更多配置,可以参考:https://docs.travis-ci.com/user/customizing-the-build/

添加Go Report Card

  1. 打开 https://goreportcard.com/
  2. 在输入框内输入你要检测的 Github 项目地址
  3. 点击 Generate Report
  4. 然后会跳到 https://goreportcard.com/report/github.com/golang/go
  5. 你可以查看检测报告,与此同时,你可以点击右上角的 go report| C
  6. 复制弹框中的 Markdown 格式
  7. 将第 6 步中的内容粘贴到你的项目 README 中,push 到 Github,刷新即可看到你 Go 项目的检测报告了。

添加Coverage Status

开通Coveralls

Coveralls官网截图

授权登录

Coveralls官方网站使用github账号登录授权。

添加项目

add repo截图 add repo截图

查看repo_token

repo_token截图

repo_token涉及安全不应该提交到.travis.yml,coveralls提供了非对称加密repo_token的方法。

对于密码等敏感信息,Travis CI提供了2种解决方案:

  • 对密码等敏感信息进行加密,然后再构建环境时解密。
  • 在Travis CI控制台设置环境变量,然后使用System.getenv()获取值。

配置环境变量

对于文件加密,Travis CI提供了一个基于ruby的CLI命令行工具,可以直接使用gem安装:

gem install travis

注意:gem安装依赖于ruby以及ruby版本。 还有众所周知的原因,你最好切换一个gem源。

gem sources -l #查看gem源

对你的token加密:

travis encrypt COVERALLS_TOKEN=your_token

将得到的值填写到.travis.yml的 secure 中即可。

添加 Codecov

Codecov 的功能:

加强开发工作流程,提高代码质量

  • 一行脚本即可上传报告,非常简单。
# .travis.yml

after_success:
  - bash <(curl -s https://codecov.io/bash)
  • 报告合并,完美无缺。
  • 审核报告,无缝连接。
  • 从现在开始覆盖你的代码,免费。
  • 全世界有上百万开发者用 Codecov 覆盖他们的代码。

给大家看一些截图:

codecov codecov codecov

大家如果仔细看的话,应该会发现机器人名称是coveralls,而不是 codecov ,这是为什么呢?

那是因为我们在 .travis.yml 里面没有加下面这行脚本。

- go test -race -coverprofile=coverage.txt -covermode=atomic

codecov

最后:如何在自己的项目中显示Status Image?

操作起来很简单,只需要在你的 README.md 中增加 badge 链接即可。

travis页面复制图标标签 coveralls

coveralls复制图标标签 coveralls

然后将代码全部提交到 Github,你就可以看到 build status 和 coveralls 了。

参考资料

  1. https://github.com/pingcap/tidb
  2. https://github.com/nukc/how-to-use-travis-ci
  3. https://www.jerrylou.me/工具/howto-github-travisci-coveralls-20170120.html

赞助我

微信支付

More Repositories

1

learning-golang

Go 学习之路:Go 开发者博客、Go 微信公众号、Go 学习资料(文档、书籍、视频)
Go
2,677
star
2

learning-rust

Rust 学习之路 > Rust Programming Tutorial, include articles, interview, example, problems.
Rust
577
star
3

github-trending-backup

Github trending backup by everyday.
Go
325
star
4

ratelimit

基于令牌桶算法和漏桶算法来实现的限速限流,Golang实现。
Go
311
star
5

learning-growth

「一叶知秋」集散地,主要是我的一些阅读、学习、社交、研究、思考、放松娱乐记录整理。
99
star
6

learning-kubernetes

Learning Kubernetes ServiceMesh Istio
Shell
69
star
7

learning-english

英语学习,资料来源英语流利说,英语平台:medium、kubernetes 等各种技术网站、博客等。该项目即将 Archive,请移步 https://github.com/yangwenmai/learning-growth
42
star
8

learning-linux

Linux 攻坚计划
26
star
9

learning-algorithms

💻✅数据结构与算法学习,LeetCode 题
Go
24
star
10

go-in-action

《Go In Action》代码笔记,练习题,项目源码分析,改进代码等。
Go
22
star
11

GifImageViewEx

a simple for android gif ImageView base on ImageViewEx。android解析本地或者URL的gif图片或者jpg、png等图片,基于ImageViewEx。
Java
18
star
12

pg

研发团队的工程效率实践-《如何通过Gitlab+七牛云存储来构建在线产品需求文档》
JavaScript
17
star
13

shell-scripts

my docker docker-compose kubernetes shell start/stop/delete/cleanup ... scripts
Shell
16
star
14

examples

一些 examples 集合(包括 gRPC, Kubernetes, opentracing, Drone, Python 等)
Go
11
star
15

awesome-papers

Awesome papers in reading list.
10
star
16

weekly_digest

Weekly digest on your GitHub repository in golang 📆
Go
8
star
17

jaeger-opentracing-examples

A Distributed Tracing System examples
Go
8
star
18

learning-javascript

learning JavaScript
8
star
19

gitfeed

A command-line for displaying NewsFeed using GitHub public API in Go
Go
6
star
20

telegram-bot-go

telegram bot using go
Go
6
star
21

goAlgorithm

some algorithm in golang
Go
5
star
22

Douyu

一种新颖的将编译器、HTTP服务器、MVC框架、ORM框架有效结合的Java开发平台
Java
5
star
23

night-reading-go-bitbar-plugin

Go 夜读 BitBar 插件
Go
5
star
24

gpt

Create a new project based on how-to-add-badge-in-github-readme.
Go
4
star
25

talkgo-algorithms

TalkGo 算法之美题解
Go
4
star
26

learning-blockchain

Learning Blockchain - Any time, any place, just do it!
3
star
27

maiyang.me

茶歇驿站
HTML
3
star
28

learning-qa

Learning QA - 学习测试技术技能,实践交流分享、总结
3
star
29

algocasts-go

Solutions to the problems at algocasts.io in Go
Go
2
star
30

iloveyou

iloveyou
HTML
2
star
31

maitodo

a simple todo application base on nodejs express mongodb.一个基于nodejs、express、mongodb的简单todo应用。
JavaScript
1
star
32

wg

用 Go 写的一个简单的命令行天气小助手
Go
1
star
33

github-workflow

Github Workflow
1
star
34

hackathon2022-plugin-server

PingCAP Hackathon 2022 plugin server(include http and rpc)
Go
1
star
35

mahonia

Automatically exported from code.google.com/p/mahonia
Go
1
star
36

log

a logging for Go.
1
star
37

content-analyzer

Video Audio Text Content Analyzer
Python
1
star
38

gotime

Gotime is a time toolkit for golang.
1
star
39

url-parse-feed

load chrome export bookmark, tag <a> parse to URL, URL parse to feed URL. 将chrome导出的书签解析成URL,再将URL解析成feed的URL
Java
1
star