最近因为开发节奏比较紧张,需要不断地部署和测试。所以在想做一下关于持续集成,持续交付的实践。

由于自己没有摸索明白Jenkins,所以尝试了使用Teamcity。以下记录下这次实践的主要步骤:

1. Teamcity安装部署:

本次采用的是在linux中进行安装部署,主要就是下载对应的安装包,在本地解压后运行TeamCity/bin/runAll.sh,然后访问服务器的8111端口。点击使用密钥访问,具体值在Teamcity/logs/teamcity-server.log中查找Super user authentication token值即可。然后创建用户后即可开始使用。具体步骤可以搜索安装教程,网上一大把,这里就不赘述了。

2. 创建项目

首先介绍下我所要创建的项目:

项目的打包和部署的工具开发的同学已经提供了 。本次实践的目的主要是完成

  • 在有代码提交时,自动触发构建,开始执行打包和部署。
  • 部署完成后,开始执行测试。

下面说下具体的操作:

1. 创建项目:

打开浏览器,访问Teamcity页面

登录后,点击右上角的螺母图标

teamcity连接服务器的docker teamcity git_安装部署

点击create project

如果你也像我一样,不用调用源代码进行构建,请选择Manually

teamcity连接服务器的docker teamcity git_安装部署_02

填写上图中的Name和Project 即可 然后点击create创建

要监控code提交,我们就要先关联code

teamcity连接服务器的docker teamcity git_创建项目_03

点击VCS Roos

teamcity连接服务器的docker teamcity git_创建项目_04

依照上图,填写Feach URL,Default branch username password即可 其他必填项非敏感 保存即可

下一步后在让创建一个子构建的配置 正常填写name点击create到下一个界面

teamcity连接服务器的docker teamcity git_ci_05

此时点击triggers,添加钩子,监控代码提交

点击右侧新建trigger  选择vcs

teamcity连接服务器的docker teamcity git_ci_06

直接保存即可

teamcity连接服务器的docker teamcity git_安装部署_07

然后点击左侧的buildsteps 选择ssh exec即可添加自己的命令

teamcity连接服务器的docker teamcity git_创建项目_08

在target中填写要执行命令的机器地址 填写账号密码

在下方commands中添加自己命令即可

注意 命令行起始位置为系统根目录,步骤内切换文件夹可以继承文件路径

最后还要添加一个自动化测试  我这里是使用python unittest 编写,可以直接在Teamcity中运行

teamcity连接服务器的docker teamcity git_安装部署_09

按上图填写,working directory中放入执行的脚本所在的目录,teamcity会自动递归扫描文件夹下所有的test开头的文件。

测试脚本中需要更改以下代码:

from teamcity import is_running_under_teamcity
from teamcity.unittestpy import TeamcityTestRunner
if __name__ == '__main__':
  

  
    if is_running_under_teamcity():
        runner = TeamcityTestRunner()
    else:
        自己创建的runner的代码

至此 就可以实现监控代码提交并进行打包-部署-测试功能啦

teamcity连接服务器的docker teamcity git_安装部署_10