持续集成工具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就安装好了。当然我新建了两个项目,所以实际的界面可能会有所差别。
配置数据库
还有一个注意点就是配置数据库了。默认情况下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等工具,这里使用了我的一个简易小项目作为例子,它的代码在这里。
然后TeamCity会检查输入的地址,并提醒我们确认。
这样,项目就建立完成了。
设置构建步骤
持续集成工具需要管理项目的整个生命周期,所以仅仅添加了项目还是不够的。下面一步就是要设置具体的项目构建步骤。不同的项目可能有不同的构建过程,所以这里就是设置的重点了。特别要说一下,TeamCity的免费版本只能支持20个构建步骤,所以如果需要用到更多配置的话就需要付费购买商业版了。
另外从这里就可以看出构建工具的重要性。如果项目是Java项目,使用了业界著名的Maven或Gradle这样的构建工具来管理项目,那么TeamCity只需要自动检测就可以完成所有配置步骤。如果没有使用这样的工具,那么可能需要自己设置构建过程了。(比方说我这里的WPF桌面程序,就只能自己设置了)
由于我用的例子是WPF桌面程序,所以这里就来说说.NET程序的构建过程配置。如果使用了自动检测功能的话,那么TeamCity会自动帮你添加一个Visual Studio (sln)步骤。不过仅仅这一个步骤是远远不够的,所以我们需要添加其他步骤。
首先考虑到项目中可能使用多种第三方库,而在.NET平台下第三方库一般都是用NuGet获取。所以我们需要添加一个NuGet步骤。首先点击上图中的configure build steps manually
,然后选择NuGet Installer
类型,在弹出的界面中设置相应的选项。
然后需要设置构建步骤,选择Visual Studio (sln)即可。
这样一来,项目构建的步骤就配置好了。
构建项目
设置好构建步骤之后,下一步就可以开始构建项目了。点击页面上面的Projects
,切换回项目视图。然后点击项目右边的Run
即可。
这时候构建代理右边的空白框也会变成蓝色,表示正在构建项目。等待片刻,项目就会构建完毕。一个构建任务就完成了。
测试项目
一个成功的项目必然有完整的测试过程。还是那句话,如果项目使用了成熟的构建工具,那么TeamCity就会自动检测和使用这些功能。但是如果TeamCity没有自动检测到的话,就需要手动设置了。
首先点击对应项目的Build链接,然后点击构建设置(Settings),并在页面下方找到构建步骤(Build Steps)。
在前面我们添加了两个步骤,下面还要继续添加一个测试步骤。新建一个步骤,类型选择Visual Studio Tests。在Visual Studio Tests下还有两个类型,MSTest和VSTest。它们的区别在于VSTest需要TeamCity构建代理服务器上同时安装有Visual Studio或者Visual Studio Test Agent。然后Test file names这里需要填写测试项目的程序集,只要填写相对路径就行了。具体程序集的位置和名称需要根据项目来确定,我这个测试项目的情况就是如图所示。最后如果需要检查测试覆盖率,还可以设置最后的.NET Coverage tool。
设置完成后再次运行构建命令,可以看到这次不仅构建了项目,还同时运行了测试,测试结果也会一并显示。
如果点击进入详情查看,还会获得更丰富的结果。这里我同时选择了代码覆盖率功能,可以看到非常方便的图表显示。
自动构建
前面所有操作全部是手动点击执行构建的。当然TeamCity也支持自动构建,默认情况下每个项目都会添加一个触发器,当项目所在的版本控制系统更新的时候触发构建。当然这个条件也是可以修改的。
如下图所示,触发器的设置在项目设置中,如果需要其他触发器设置在这里更改即可。
邮件通知
如果构建失败的话,TeamCity可以向你账户发送电子邮件提醒你状况,不过这需要你在TeamCity中设置SMTP服务器才行。如果是公司的话,应该可以使用公司的企业邮箱进行设置。个人建议不要使用国内的电邮,因为有些国内电邮的服务器由于经常发送垃圾邮件,可能会被其他一些电邮拉黑,导致无法获取电子邮件。
持续集成工具TeamCity快速入门相关推荐
- 持续集成:TeamCity 最详细的安装和使用介绍
最近小熙在看有关持续集成相关的东西,首先肯定是找开发工具了.嗯,听说TeamCity不错,所以找寻相关资料.发现一篇讲述不错的,特此转载和大家分享下 如果各位小伙伴们想要破解版的,请先在下文的官网链接 ...
- 持续集成工具 Jetbrains TeamCity 简介
目录 安装 Windows下安装 Docker下安装 使用TeamCity 初始化 配置数据库 新建项目 设置构建步骤 构建项目 测试项目 自动构建 邮件通知 大名鼎鼎的Intellij IDEA大家 ...
- 持续集成工具 Jenkins vs TeamCity
1. 先来看看受欢迎程度: 2. Jenkins vs TeamCity: What are the differences? Jenkins Jenkins 是一个开源工具,Jenkins的出现的时 ...
- python持续集成工具_21 个好用的持续集成工具,总有一款适合你
原标题:21 个好用的持续集成工具,总有一款适合你 市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web ...
- 21 个好用的持续集成工具,总有一款适合你
市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...
- 21 个好用的持续集成工具
市场上持续集成工具众多,找到一个合适的工具并非易事,下面介绍了 21 个比较受欢迎的 CI 工具,并附上了下载链接. 1. Buddy 对 Web 开发者来说,Buddy 是一个智能的 CI/CD 工 ...
- 中小型研发团队架构实践:高效率、低风险,一键发布并测试的持续集成工具Jenkins...
一.Jenkins 简介 \\ 当每月发布次数变得越来越多时,如超过 200 次,发布工作人员的工作量会翻倍,此时由人工发布操作失误引起的风险会变得越来越大.为了提高项目的发布效率,也为了降低由人工操 ...
- 不容错过的8个持续集成工具
如果你很熟悉"持续集成",一定会同意这样的观点:"它已经逐渐成为一种必不可少的工具".在这篇文章中,我们将介绍几款流行的持续集成工具.阅读后,你会对这些CI工具 ...
- 以持续集成工具实现DevOps之禅
作为DevOps流程中的一个重要组成部分,持续集成(CI)的目标是对开发团队的代码进行集成,包括代码的构建.单元测试与集成测试的执行,以及生成执行结果的报表等等.CI使开发团队无需将时间浪费在处理代码 ...
最新文章
- 将 SQL Server 存储过程用于数据访问
- 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。...
- java线程中等待_Java:线程中的Thread.sleep():没有等待
- vue --- 获取子组件数据的一个应急方案$refs
- Time.deltaTime 含义和应用
- 骑马与砍杀服务器修复,骑马与砍杀21.3.1公共版和热修说明 修复联机模式
- python3 rrdtool 使用
- 【HTML5】页面传递参数给下一个页面
- 调用谷歌翻译API(FREE)的java代码
- 软件的生命周期与开发过程模型
- wind 修复 matlab 插件后仍然无效
- 浅析淘宝数据魔方技术架构
- Qt + FFmpeg 屏幕录制器
- 开发 mirai QQ机器人起步教程
- 俞敏洪:忍受孤独,失败,屈辱的能力是成就大业的必备条
- stlink下载调试器使用说明(STM32采用stlink下载程序)
- 2020年诺贝尔生理学或医学奖揭晓:由发现丙肝病毒的两位美国及一位英国科学家共同获奖...
- Asp.Net C# - AES加密、解密
- sql语句实现单表省市级连
- Xilinx技术文档翻译理解汇总
热门文章
- 我反对!--这个时代最诚实的声音42条
- electron+vue3全家桶+vite项目搭建【八】集成mockjs模拟数据
- 手把手教你在centos上配置Django项目(超详细步骤)
- Axure RP原型发布到公司服务器
- denied git permission_git使用中遇到的Permission to xxx denied to xxx问题如何解决
- 分布式存储能成为存储市场增长的主要驱动力
- 检查Logic Java 课程最近一次考试。如果全部没有通过考试(60分及格),则认为本次考试偏难,计算该次考试平均分加5分。
- 4路编码器脉冲计数器,8路DO,Modbus TCP模块 WJ96
- Java岗大厂面试百日冲刺【Day49】— 十个面试九个秒杀1 (日积月累,每日三题)
- matlab圆周率计算,matlab代码求圆周率的简单算法