TeamCity[下文简称TC]是JetBrains旗下的一款持续集成[Continuous Integration,简称CI]工具,开箱即用。mysql
声明:本系列全部内容针对Jdk1.8环境。git
首先明确一个概念,什么是CI,CI要达到什么目的?简单来讲,CI是一种软件开发实践,在软件项目团队中,天天均可能会有不一样的开发人员提交代码,共享代码库中的代码是否时刻保持可运行状态,不得而知。那么,在开发进程中,持续的构建部署共享代码库,就能及时测试代码的可运行时态,及早发现问题并解决。web
因而可知,在团队项目中,CI已是必不可少的一环。sql
业界的CI工具也有不少,五花齐放,各显神通,如流行的开源工具Jenkins,以及CircleCI、GitLab CI等,本文不讨论各CI工具的优劣,聚焦TC的使用介绍。数据库
TC是一款功能强大且用户用好的CI工具,具备如下主要功能:windows
1) 在不一样平台和环境中同时运行并行构建后端
2) 优化代码集成周期并确保永远不会在存储库中得到损坏的代码centos
3) 经过智能测试从新排序查看即时测试结果报告浏览器
4) 支持Java和.net:为Java和.NET运行代码覆盖和重复查找器bash
5) 自定义构建持续时间,成功率,代码质量和自定义指标的统计信息
请确保系统中已经安装了maven和git软件,并正确配置了环境变量。这很重要。
1)下载exe安装程序:http://www.jetbrains.com/teamcity/download/
2)选择安装的功能组件:
Build Agent:构建代理,实际代码集成构建的载体,默认和TC服务Server安装在同一台服务器上。TC支持多构建代理,TC Server能够链接不一样服务器上的多个不一样构建代理,协同工做。因为当前是在演练环境,请勾选。
Server:TC服务,主要承载TC的核心服务和web界面,请勾选。
同时,勾选Windows Service,安装windows服务。
3)选择端口
默认端口是80,建议修改为8111:
4)配置Build Agent的属性:
如上图可知:TC服务的web地址是http://localhost:8111,同时构建代理对TC服务的监听端口是9090,以及代理所在的目录是C:\Softapp\JetBrains\TeamCity2\buildAgent,即在TC的安装目录下:
5)选择经过系统帐号运行TC服务和Build Agent代理服务
6)开启服务
也能够经过windows services管理面板手动管理。
确保已经安装了git和maven,并配置好了系统环境变量,这很重要。
1)下载tar.gz安装程序:http://www.jetbrains.com/teamcity/download/,并将安装包传送至centos系统,如拷贝至/data/software/目录中:
下面安装2018.1.2版本:
2)解压2018.1.2版本:
tar -xzvf /data/software/TeamCity-2018.1.2.tar.gz
生成TeamCity目录,打开目录,内容以下:
见上图:
bin:存放TC的可执行文件,如runAll.sh、startup.sh、shutdown.sh、teamcity-server.sh等;
buildAgent:默认构建代理目录,存放构建代理的文件以及执行信息;
conf:TC配置文件目录,如server.xml,能够更换TC的服务端口;
licenses:存放TC的凭证文件等;
logs:存放执行日志文件;
3)启动服务
runAll.sh脚本能够同时启动TC server和Build Agent;若是Build Agent须要单独启动的话,能够执行teamcity-server.sh单纯启动TC server,启停的命令以下:(后台执行)
建议此处使用runAll.sh脚本。
在web浏览器中打开:http://localhost:8111,若是是远程centos服务器,首先开通8111防火墙,经过地址:http://[centos服务器ip]:8111访问。
1)配置TC数据存储目录Data Directory:
默认便可,点击Proceed。
2)配置数据库
TeamCity能够在SQL数据库中存储构建历史记录,用户,构建结果和一些运行时数据,以便后续问题排查。
其中,包括HSQLDB内置数据库以及其余可持久化到硬盘的数据库,如mysql等。
HSQLDB是默认的内置数据库,但不建议使用,摘录TC官网所言:
在第一次TeamCity运行时,默认状况下建议使用基于HSQLDB数据库引擎的内部数据库。内部数据库仅适用于评估目的;它开箱即用,无需额外设置。
可是,咱们强烈建议在生产环境中使用外部数据库做为后端TeamCity数据库。
外部数据库一般更可靠并提供更好的性能:内部数据库可能崩溃并丢失全部数据(例如,在“磁盘空间不足”状况下)。
此外,内部数据库在大型数据集(例如,超过200Mb的数据库存储文件)上可能变得很是慢。
另请注意,若是您使用内部数据库,咱们的支持不会涵盖任何性能或数据库数据丢失问题。
简而言之,不要将内部HSQLDB数据库用于生产TeamCity实例。复制代码
咱们选择MySQL数据库:
须要拷贝一个mysql jabc链接的jar到数据目录的lib/jabc目录下,或者选择在线下载。
而后再建立一个空数据库,执行以下命令:
create database <database-name> collate utf8_bin; create user <user-name> identified by '<password>'; grant all privileges on <database-name>.* to <user-name>; grant process on *.* to <user-name>;复制代码
而后在上图中填入数据库的链接信息,点击Proceed。
注意:必须新建一个空数据库并赋权,不然可能出现以下错误:
Found a TeamCity schema when expected an empty database复制代码
3)最后一步:建立TC的全部者帐户信息
输入用户名和密码后,点击Create ccount,完成TC的配置。
好了,本文就到这里,下一篇讲讲TC的基本使用。