Spectrum持续集成项目打包(Travis-CI)
Travis-CI
what
Travis CI 是目前新兴的开源持续集成构建项目(Continuous Integration,简称 CI),它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜。目前大多数的github项目都已经移入到Travis CI的构建队列中,据说Travis CI每天运行超过4000次完整构建。
why
团队协作开发中,构建、测试与部署往往会产生冲突,花费不必要的精力去解决这些问题。CI通过绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。每次代码的小幅变更,就能看到运行结果,从而不断累积小的变更,而不是在开发周期结束时,一下子合并一大块代码。
who
Travis-CI仅支持GitHub的项目,对开源项目是免费,对私有项目是收费的
how
在Github上,可以添加Travis CI,当有code push时候,会推送通知到Travis,根据设置的脚本运行指定任务。
接下来以开源项目Spectrum为例,来一步步演示如何使用Travis-CI
Spectrum持续集成项目打包
step1
当然得先fork一下我们的主角啦Spectrum
step2
访问Travis-CI 官网,点击页面右上角的“Sign in with GitHub ”,输入github密码进行登录。然后会在首页的右侧看到自己的github仓库列表。如图:(我这么搜索只为了展示Spectrum)
step3
点击上图中Spectrum仓库右侧对应的开关。打开开关,Travis 会监听这个仓库的所有变化
step4
在github首页,点击自己头像下的setting,选择左侧栏目最下面一项“Developer settings”,再点击左侧栏的“Personal access tokens”,然后点击页面右上角的“Generate new token”。1.填写Token description 2.选择repo打钩即可,如图
然后点击页面下方的 “Generate token”,页面会出现生成的token.只一次可见,一定要第一次保存下来。
step5
安装travis客户端。MAC端执行命令 gem install travis
然后执行命令 travis -v 验证安装成功。如图
然后执行命令 travis login。输入github的用户名和密码进行登录。如图
94.png
登录成功后,mac端执行命令
travis encrypt -r <your github name>/<your github repo> GH_Token=<step4 中得到的token值>。执行完如图
95.png
得到加密后的secure值,进行保存(配置文件.travis.yml会用到)。
step6
回到Travis-CI,点击右侧的 More options下拉菜单的Settings,如图
找到环境变量 Environment Variables,name自定义设置,value为step4中的token值,然后点击Add按钮。如图
97.jpg
step7
接下来是重头戏.travis.yml文件,点击官方文档查询可查询更多.travis.yml配置标签(自我探索:可以取文档中查阅step5中生成secure值如何配置)
language: go
go:
- 1.10.x
after_script:
- git clone https://${GH_REF} .deploy_git # GH_REF是最下面配置的仓库地址
- cd .deploy_git
- git checkout master
- cd ../
- mv .deploy_git/.git/ ./public/ # 这一步之前的操作是为了保留master分支的提交记录,不然每次git init的话只有1条commit
- cd ./public
- git config user.name "wangbaojin" #修改name
- git config user.email "904026435@qq.com" #修改email
- git add .
- git commit -m "Travis CI Auto Builder at `date +"%Y-%m-%d %H:%M"`" # 提交记录包含时间
- git push --force --quiet "https://${Travis_Token}@${GH_REF}" master:master #Travis_Token是在Travis中配置环境变量的名称
branches:
only:
- master #只监测master分支,master是我的分支的名称,可根据自己情况设置
env:
global:
- GH_REF: github.com/wangbaojin/Spectrum.git
- Travis_Token:for-Spectrum
notifications:
email:
- 904026435@qq.com
on_success: change
on_failure: always
将以上.travis.yml文件保存在<your github name>/<your github repo> 根目录下
step8
现在可以测试流程了
在本地代码中,加任意测试代码,然后执行
git add .
git commit -m '测试travis CI'
git push 如图
100.png
然后回到Travis-CI,如图,pass成功。
集成编译的网址:https://travis-ci.org/wangbaojin/Spectrum
获取更多资料,请参考文档:https://docs.travis-ci.com/user/languages/go/