昨天无意间搜索到一篇文章: http://blog.daocloud.io/daocloud_coding/ DaoCloud完成与Coding对接
这让我感到很兴奋,原因是我搜索的关键字是“coding.net 持续集成”。
有一个项目放在coding平台的私有库中,一直没有做持续集成,如果是放在github的公有库,倒是可以用TravisCI做,但是这个项目不是开源的,一直希望找到一个国内的类似TravisCI的服务,直到昨天。
DaoCloud
DaoCloud 是业界领先的企业级容器云平台和解决方案提供商,致力于以 Docker 为代表的容器技术,为企业打造面向下一代互联网应用的交付和运维平台,帮助客户实现云端持续创新,….,等等。就不帮别人打广告了。
对我来说最重要的是:
DaoCloud 对接 GitHub、Coding、GitCafe 等国内外代码托管库,采用云端 SaaS 化服务,帮助开发者实现自动化持续集成测试和 Docker 容器镜像构建。DaoCloud 镜像构建服务基于全球分布式网路,构建速度极快,提供私有镜像存储空间,为容器化交付和跨团队合作奠定了基础。
如何使用
其实它提供的持续集成服务和TravisCI有点类似,至少从使用者的角度,是这么理解的。
目前支持如下语言和服务:
语言:Golang、Python、Ruby、Java、Javascript(NodeJS)、PHP、C(gcc)
服务:MySQL、Redis、MongoDB
服务指的意思是,比如:构建需要集成测试或者功能测试,那么它可以提供三种数据库供你使用。
和TravisCI类似,需要你提供一个daocloud.yml,格式如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
image是指定构建运行的环境镜像,除了上面的go语言,还有其他node,java,php,ruby等,在文章底部的参考资料中可以找到。
服务
service也就是你需要的数据库服务了,举个例子,假设,你指定了mysql。那么它提供的mysql的配置如下:
1 2 3 4 5 6 7 |
|
所以,项目中的测试在连接数据库的时候,也需要对应配置,否则就连接不上。
执行顺序
设置环境变量。
执行 install 脚本。
克隆源代码,切换到对应的提交。
执行 before_script 脚本。
执行 script 脚本。
script脚本,也就是你的构建执行命令了,比如:./gradlew clean build
配置完成后,提交代码,就可以触发CI构建。
微信提醒功能
DaoCloud还可以和微信绑定,提供构建状态提醒,这样就不需要Build TV,直接手机微信提醒。
结束语
我的项目花费了大概半天的时间,就配置成功了,当然这包括项目本身的一些配置,与平台无关。
参考资料:
1.http://help.daocloud.io/features/continuous-integration/daocloud-yml.html