持续集成工具TeamCity快速入门

简介: 大名鼎鼎的Intellij IDEA大家都听说过吧,它的出品公司Jetbrains不仅推出了一系列好用的IDE,同时还推出了现在正热的Kotlin语言。Jetbrains还有一个非常好用的产品就是今天要介绍的持续集成工具TeamCity。

大名鼎鼎的Intellij IDEA大家都听说过吧,它的出品公司Jetbrains不仅推出了一系列好用的IDE,同时还推出了现在正热的Kotlin语言。Jetbrains还有一个非常好用的产品就是今天要介绍的持续集成工具TeamCity

安装

Windows下安装

要安装TeamCity很简单,首先到下载页面下载TeamCity,由于这里我用的是Windows系统,所以下载Windows版本的安装包。下载完成之后安装即可。在Windows下安装有一个好处就是可以安装为服务,这样以后如果需要管理TeamCity的状态会更方便一些。这里要说下,TeamCity分为两个服务,一个叫做构建代理,实际的项目构建都是通过这个代理服务来执行的;另一个服务就是TeamCity的网页版控制端,让我们可以方便的通过网页进行管理。

当然在下载页面上可以看到有多个操作系统,不论是Windows、macOS还是Linux都可以运行TeamCity。

Docker下安装

现在虚拟化服务越来越流行了,因为虚拟化真的非常方便。如果需要在Docker中启用TeamCity也同样简单。TeamCity对应的DockerHub页面在这里

首先要做的就差拉取TeamCity镜像。

docker pull jetbrains/teamcity-server

拉去镜像之后启动它的实例即可。下面是官方页面上给出的例子,当然这里的几个名称和文件位置可以根据需要自行修改。

docker run -it --name teamcity-server-instance  \
    -v <path to data directory>:/data/teamcity_server/datadir \
    -v <path to logs directory>:/opt/teamcity/logs  \
    -p <port on host>:8111 \
    jetbrains/teamcity-server

使用TeamCity

初始化

安装完成并启动TeamCity之后,我们就可以在Web页面中访问它了。如果是Windows系统,那么默认端口是80,如果是其他系统则是你自己设置的端口。然后访问浏览器的localhost:80即可看到TeamCity页面。第一次使用需要配置用户并初始化,之后稍微等待一段时间即可。

之后应该会看到类似的界面,这样TeamCity就安装好了。当然我新建了两个项目,所以实际的界面可能会有所差别。

img_9e2c640e3c443502b63db9c3e69b3be3.png
TeamCity截图

配置数据库

还有一个注意点就是配置数据库了。默认情况下TeamCity使用的是内置的数据库,性能并不怎么样。所以为了将来使用更加顺畅,TeamCity推荐我们设置自己的数据库。

举个例子,如果我准备用MySQL数据库,那么我需要下载一个MySQL的JDBC驱动mysql-connector-java-5.1.42-bin.jar,然后把它放到TeamCity的数据文件夹的lib\jdbc下,然后在TeamCity中配置相应的数据库用户名和密码以便访问数据库。

当然这是Windows下的情况,如果使用Docker,可能不需要自己配置数据库。另外配置玩数据库之后并不是万事大吉,有时候TeamCity还会帮你检测到数据库的性能问题,这时候只要照着他的提示修改数据库的配置即可。

新建项目

第一次使用TeamCity的时候会提示你新建项目。之后如果要新建项目,点击右上角的Administration即可。新建项目时需要提供项目代码的URL,支持Git、SVN等工具,这里使用了我的一个简易小项目作为例子,它的代码在这里

img_bc16981fc5073b6fcc4f9545de93a5b0.png
新建项目

然后TeamCity会检查输入的地址,并提醒我们确认。

img_466ad38e75364a1c79f6bc16f9febd99.png
确认地址

这样,项目就建立完成了。

设置构建步骤

持续集成工具需要管理项目的整个生命周期,所以仅仅添加了项目还是不够的。下面一步就是要设置具体的项目构建步骤。不同的项目可能有不同的构建过程,所以这里就是设置的重点了。特别要说一下,TeamCity的免费版本只能支持20个构建步骤,所以如果需要用到更多配置的话就需要付费购买商业版了。

另外从这里就可以看出构建工具的重要性。如果项目是Java项目,使用了业界著名的Maven或Gradle这样的构建工具来管理项目,那么TeamCity只需要自动检测就可以完成所有配置步骤。如果没有使用这样的工具,那么可能需要自己设置构建过程了。(比方说我这里的WPF桌面程序,就只能自己设置了)

由于我用的例子是WPF桌面程序,所以这里就来说说.NET程序的构建过程配置。如果使用了自动检测功能的话,那么TeamCity会自动帮你添加一个Visual Studio (sln)步骤。不过仅仅这一个步骤是远远不够的,所以我们需要添加其他步骤。

img_8bf2b3ce4cbcc90599600e3c8390e404.png
自动检测构建步骤

首先考虑到项目中可能使用多种第三方库,而在.NET平台下第三方库一般都是用NuGet获取。所以我们需要添加一个NuGet步骤。首先点击上图中的configure build steps manually,然后选择NuGet Installer类型,在弹出的界面中设置相应的选项。

img_72583f24567ba849a2bf7826c05f7b6d.png
NuGet构建步骤

然后需要设置构建步骤,选择Visual Studio (sln)即可。

img_4e502131c5aea165b74eb3f4acfeb1f2.png
构建步骤

这样一来,项目构建的步骤就配置好了。

img_eca0ebc4a04a4e1dbeb7a3cc368e67cd.png
构建过程配置完成2

构建项目

设置好构建步骤之后,下一步就可以开始构建项目了。点击页面上面的Projects,切换回项目视图。然后点击项目右边的Run即可。

img_ccb6d2f74f37195f53c00e0fb33c74a9.png
运行项目

这时候构建代理右边的空白框也会变成蓝色,表示正在构建项目。等待片刻,项目就会构建完毕。一个构建任务就完成了。

img_01830b830548287ff5c36538dc613dcb.png
构建成功

测试项目

一个成功的项目必然有完整的测试过程。还是那句话,如果项目使用了成熟的构建工具,那么TeamCity就会自动检测和使用这些功能。但是如果TeamCity没有自动检测到的话,就需要手动设置了。

首先点击对应项目的Build链接,然后点击构建设置(Settings),并在页面下方找到构建步骤(Build Steps)。

img_e27523f99f2a562956b9c7253e6a01f8.png
构建设置

在前面我们添加了两个步骤,下面还要继续添加一个测试步骤。新建一个步骤,类型选择Visual Studio Tests。在Visual Studio Tests下还有两个类型,MSTest和VSTest。它们的区别在于VSTest需要TeamCity构建代理服务器上同时安装有Visual Studio或者Visual Studio Test Agent。然后Test file names这里需要填写测试项目的程序集,只要填写相对路径就行了。具体程序集的位置和名称需要根据项目来确定,我这个测试项目的情况就是如图所示。最后如果需要检查测试覆盖率,还可以设置最后的.NET Coverage tool。

img_dc16f3fd2723610c4d73f280c215a002.png
测试设置

设置完成后再次运行构建命令,可以看到这次不仅构建了项目,还同时运行了测试,测试结果也会一并显示。

img_059f686ff1f5f337569d66a9d73d4647.png
测试结果

如果点击进入详情查看,还会获得更丰富的结果。这里我同时选择了代码覆盖率功能,可以看到非常方便的图表显示。

img_41e4498e4fa9f192357ce0588dc5c522.png
运行测试详细结果

自动构建

前面所有操作全部是手动点击执行构建的。当然TeamCity也支持自动构建,默认情况下每个项目都会添加一个触发器,当项目所在的版本控制系统更新的时候触发构建。当然这个条件也是可以修改的。

如下图所示,触发器的设置在项目设置中,如果需要其他触发器设置在这里更改即可。

img_12f477beea35d84ae6fb90f4e036b21e.png
构建触发器

邮件通知

如果构建失败的话,TeamCity可以向你账户发送电子邮件提醒你状况,不过这需要你在TeamCity中设置SMTP服务器才行。如果是公司的话,应该可以使用公司的企业邮箱进行设置。个人建议不要使用国内的电邮,因为有些国内电邮的服务器由于经常发送垃圾邮件,可能会被其他一些电邮拉黑,导致无法获取电子邮件。

img_afe461cde7dd3a2e0e6e83a58a9b2490.png
电邮通知
相关文章
|
3月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute 生态系统中的数据集成工具
【8月更文第31天】在大数据时代,数据集成对于构建高效的数据处理流水线至关重要。阿里云的 MaxCompute 是一个用于处理大规模数据集的服务平台,它提供了强大的计算能力和丰富的生态系统工具来帮助用户管理和处理数据。本文将详细介绍如何使用 DataWorks 这样的工具将 MaxCompute 整合到整个数据处理流程中,以便更有效地管理数据生命周期。
114 0
|
5月前
|
人工智能 开发者
您使用过哪些AI集成工具提升工作效率
【6月更文挑战第13天】您使用过哪些AI集成工具提升工作效率
|
3月前
|
小程序 开发者
微信开发者工具如何集成SVN、同时解决集成SVN无效果的问题
这篇文章介绍了如何在微信开发者工具中集成SVN版本控制系统,并提供了解决集成后无效果问题的方法。
微信开发者工具如何集成SVN、同时解决集成SVN无效果的问题
|
2月前
|
缓存 数据可视化 jenkins
推荐2款实用的持续集成与部署(CI&CD)自动化工具
推荐2款实用的持续集成与部署(CI&CD)自动化工具
162 1
|
3月前
|
Java jenkins Shell
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
jenkins学习笔记之五:Maven、Ant、Gradl、Node构建工具集成
|
4月前
|
jenkins 测试技术 持续交付
探索自动化测试的边界:从工具选择到持续集成
【7月更文挑战第30天】自动化测试在软件开发生命周期中扮演着越来越重要的角色,它不仅提高了测试效率,还确保了软件质量的稳定性。然而,自动化测试并非一劳永逸的解决方案,它需要精心规划、选择合适的工具,并持续地集成到开发流程中。本文将探讨如何根据项目需求挑选合适的自动化测试工具,以及如何将这些工具无缝集成到持续集成/持续部署(CI/CD)流程中,以最大化自动化测试的效益。
34 2
|
3月前
|
Kubernetes 监控 Shell
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
|
5月前
|
人工智能 自然语言处理 数据挖掘
利用AI集成工具提升工作效率的实践经验
随着人工智能技术的蓬勃发展,以及当今数字化快速发展的时代,人工智能的运用已经渗透到各个行业和工作领域中,大语言模型在自然语言处理领域的应用也愈发广泛,而且市面上涌现出一批AI集成工具,比如Langchain、Dify、llamaIndex、fastgpt、百炼等,它们为开发者提供了强大的支持和便利,极大地提升了AI模型的构建和管理效率。作为一名热衷于利用新技术提高工作效率的开发者,我也积极尝试将这些工具融入到我的日常工作中,以期望提升工作效率和质量,下面我将分享我是如何使用AI集成工具来提升工作效率的,以及实践经验和心得。
202 1
利用AI集成工具提升工作效率的实践经验
|
5月前
|
安全
手机kali终端,集成安全集成工具----使用arpspoof工具给电脑断网------断网,网络攻击手段
手机kali终端,集成安全集成工具----使用arpspoof工具给电脑断网------断网,网络攻击手段
|
4月前
|
监控 关系型数据库 分布式数据库
PolarDB开源项目成熟,强调插件开发与第三方工具集成,打造丰富生态。
【7月更文挑战第3天】PolarDB开源项目成熟,强调插件开发与第三方工具集成,打造丰富生态。插件开发涉及需求分析、接口设计、编码、测试和文档撰写。示例展示了性能监控插件的Go代码实现。此外,与DMS的数据迁移工具及Prometheus+Grafana监控系统的集成示例,展示了其易用性。PolarDB通过开放接口鼓励开发者参与生态建设,共同推动数据库技术进步。
66 1

热门文章

最新文章