为github项目配置Travis机器人
今天为新的项目配置了一下Travis
机器人,在这里跟大家分享一下配置的过程。
诉求
在一个项目中,测试可以说是一个非常重要的部分。单元测试就是其中一个很重要的组成部分。但是有时候我们并不能做到每次写完自己的代码都去执行一遍所有的单元测试,这时候我们就想,如果能有一个机器人帮我们做这些工作就好了,这样我们就不怕忘记了。
Travis就是这么一个可以帮助我们实现这个愿望的小工具。
达到的效果
完成自己的代码,使用git push
提交到github
,建立pull request
的时候,Travis
自动执行所有的单元测试,然后将执行的结果消息发送到群组中。
配置过程
配置文件
首先,Travis
的配置都写在.travis.yml
的配置文件中。
配置项
1.首先要声明语言
我们的项目使用的java
,所以语言就是java
:
language: java
可以参考官方文档配置你自己的项目:构建Java项目
2.JDK版本
选择的版本是oraclejdk8
:
jdk: - oraclejdk8
当然,你也可以选择其他支持的任意版本。也可以对多个版本的jdk进行测试:多JDK版本
3.配置所需服务
目前使用到的服务只有数据库这一项,用到的是mysql
:
services: - mysql
4.使用的软件
这里使用的软件也是mysql
相关的几个软件:
addons: apt: packages: - mysql-server-5.6 - mysql-client-core-5.6 - mysql-client-5.6
当我们有需要加载的其他依赖的时候,还可以通过addons: apt:
来加载软件源。
5.通知方式
当机器人自动化执行单元测试完成后,我们需要知道测试的结果。
但是我们又不希望每次都要打开github去看,所以就要使用到了通知方式。
这里我们团对使用的交流工具是钉钉
。每次机器人测试结束后,就会将测试结果发送到钉钉群中。
1)添加钉钉机器人
在群组的右上角选择机器人:
然后添加机器人:
选择要添加的机器人,这里选择的是Travis
:
然后复制下webhook
:
完成。我们可以看见群组中已经添加的机器人:
2)配置通信项
然后在回到我们的配置文件中,添加配置项:
notifications: webhooks: https://oapi.dingtalk.com/robot/send?access_token=a2aea3835064e9d9ca1ea1c9c1583422746d09071d2b8f711870f027300c8093
6.创建数据库
执行代码测试之前,必不可少的就是先创建数据库:
before_install: - mysql -e 'CREATE DATABASE IF NOT EXISTS schedule default charset utf8 COLLATE utf8_general_ci;' -uroot
因为我们上面配置使用的服务是mysql
,所以这里也是使用mysql
来创建数据库。
7.执行脚本
最后就是我们主要的部分了,自动执行所有的单元测试,其实有点基础的人就会清楚,自动
,就是写了一段脚本,然后交由电脑去执行而已:
script: - cd api - cd schedule - java -version - javac -version - mvn test
到此,配置文件创建完了。当然,Travis
远比我使用的这些功能要强大的多。不仅可以自动测试,还能自动发布。剩下的功能还是要等到实际需求出现的时候再进行探索了。
官方参考:
https://open-doc.dingtalk.com...
https://docs.travis-ci.com/