1. ThoughtWorks Go简介
Go是ThoughtWorks公司采用 Java 语言研发的一款开源的持续集成和发布的系统,旨在使软件开发企业和团队在构建-测试-发布软件产品的流程自动化,并且能持续地发布软件产品。该产品于2014年2月份宣布基于Apache 2.0开源协议进行开源。其前身是CruiseControl。其官方简介为“Automate and streamline the build-test-release cycle for worry-free, continuous delivery of your product”。
该平台型产品Go,能帮助企业和组织持续改进、集成和交付高质量的产品。竞争日益激烈的商业环境要求企业快速创新的同时,维持核心流程的稳定。Go可以为所有团队提供一个清晰的发布管道,避免低效和冗余。
2. 持续集成/交付
借用ThoughtWorks公司官方的一张图来说明这一过程:
3. 部署
从官网下载两个安装包:go-server,go-agent。下载页面:http://www.go.cd/download/。我们这里以Linux平台为例进行说明,因此我们下载得到两个rpm包:go-agent-14.1.0-18882.noarch.rpm go-server-14.1.0-18882.noarch.rpm。
3.1 首先安装go-server
因为是java语言开发的,因此该安装包依赖java运行环境,这里我们选择java包为:java-1.6.0-openjdk。安装完成之后,如果没有错误,go-server会直接启动起来,监听8153端口。我们可以通过url:http://go-server.installed.hostname:8153/go来访问Go平台,在这个平台上可以进行管理、配置、持续构建和交付我们的项目。
配置过程截图如下:
3.2 再安装go-agent
go-agent可以与go-server部署在同一台服务器,也可以部署在不同的服务器上。go-agent安装完成之后,如果没有错误,会有下列提示,告诉我们go-agent的配置和启动方式:
Once that is done start the Go Agent with ‘/etc/init.d/go-agent start‘
3.3 Go架构设计
3.4 我们的实践例子截图
4. 其他
<security>
<passwordFile path=”/etc/go/users.properties” />
</security>
<mailhost hostname=”mail.corp.qihoo.net” port=”25″ tls=”false” from=”go@thoughtworks.com” admin=”weizili@360.cn” />
</server>
参考:
1. http://www.thoughtworks.com/products/docs/go/current/help/
2. 《持续集成-软件质量改进和风险降低之道》