Travis CI是什么
先说说CI——Continuous integration,持续集成,是一种软件工程流程。持续集成是指在一个项目中,任何人对代码库的任何改动,都会触发CI服务器自动对项目进行构建,自动运行测试,自动编译,甚至自动部署到测试环境。
这样做的好处就是,随时发现问题,随时修复。因为修复问题的成本随着时间的推移而增长,越早发现,修复成本越低。
Travis CI 是在线托管的CI服务,用Travis来进行持续集成,不需要自己搭服务器,在网页上点几下就好,用起来更方便。
最重要的是,Travis CI 对 Github 友好,这也是很多程序员喜欢 Travis CI 的理由。写完代码,提交,让 Traivs CI 跑自动化测试。
Travis CI 对开源项目免费,如果是私有项目,人家可是要收费的。
如何在开源项目中引入Travis CI
首先注册Travis CI, 让 travis ci 能够访问你的github 项目。
然后在根目录下添加一个名为 .travis.yml
的配置文件即可。
Synapse是一个基于浏览器的CKB插件钱包,是一个典型的Nodejs项目,ta的travisCI配置如下:
language: node_js #语言
dist: xenial # 操作系统 ubuntu xenial
node_js:
- 12.16.2 #版本
cache: # 保存缓存,加快测试速度
- npm
- yarn
before_install: #运行项目之前的操作
- npm install -g yarn
- yarn install
script: #主要的代码
- yarn test #运行测试
- yarn build #打包,代码在dist文件夹
这样你每次push 代码到github,就会自动触发Travis CI 运行测试。
运行成功如下:
你还可以配置通知,在测试失败的时候发送信息:
notifications:
email:
recipients:
- shooter@qq.com
- hammer@163.com
on_success: never # default: change
on_failure: always # default: always
发布版本
对于开源项目来说,在打上新tag,集成测试成功后,需要对外发布一个可用的版本,如果每次都是人工操作,很不美好。
这些脏活累活,就可以交给Travis CI来做了,配置如下:
before_deploy: # deploy之前的工作
- mv dist synapse-extension #在之前yarn build之后的代码放在了dist文件夹
- zip -q -r synapse-extension.zip synapse-extension # 打包压缩
- shasum -a 256 synapse-extension.zip | tee synapse-extension.asc # 校验值并输出结果到console
deploy:
provider: releases # 操作 repo 的 releases 页面
token: $GITHUB_TOKEN # 使用github token验证身份,进行操作
file:
- synapse-extension.zip # 上传的文件
- synapse-extension.asc #上传的文件
skip_cleanup: true # 要上传文件到 release,所以不能自动清除
on:
tags: true # 只有打 tag 时才运行
申请 Github Access Token
这里有个 $GITHUB_TOKEN
, 让 Travis CI 取得发布版本的权限
去 Personal access tokens 申请token,
选择 public_repo
得到token
回到 Travis CI 设定頁面,加一个新的 Environment Variables
。
key就是 GITHUB_TOKEN,value就是上一步生成的token。
大功告成,奥利给!
参考:
http://www.ruanyifeng.com/blo...
https://lingxiankong.github.i...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。