TeamCity 之旅1

简介: TeamCity提供一系列特性可以让团队快速实现持续集成:IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等,所有的这些,都是让你的团队快速享有持续集成带来的效率提升、高质量的软件保障。 使用 TeamCity,你能够在几分钟之内为你的项目配置一个构建服务器,它内建了持续单元测试,代码质量分析和早期的构建问题分析报告,你甚至可以在IDE进行。 TeamCity 提供平滑的学习曲线,你可以逐步的学习经它的高级特性和功能,你很快就能加强你发布管理实践。 本次发布,在可用性作了大量的改进,更新的IDE 插件支持 CVS和SVN,另外还包括一些之前版本不具备的企业级的特性。

TeamCity提供一系列特性可以让团队快速实现持续集成:IDE工具集成、各种消息通知、各种报表、项目的管理、分布式的编译等等,所有的这些,都是让你的团队快速享有持续集成带来的效率提升、高质量的软件保障。 使用 TeamCity,你能够在几分钟之内为你的项目配置一个构建服务器,它内建了持续单元测试,代码质量分析和早期的构建问题分析报告,你甚至可以在IDE进行。 TeamCity 提供平滑的学习曲线,你可以逐步的学习经它的高级特性和功能,你很快就能加强你发布管理实践。 本次发布,在可用性作了大量的改进,更新的IDE 插件支持 CVS和SVN,另外还包括一些之前版本不具备的企业级的特性。
image.png

安装
用Docker Image 安装 Server端:

docker run -it --name teamcity-server-instance  \
-v /opt/teamcity/data:/data/teamcity_server/datadir \
-v /opt/teamcity/logs:/opt/teamcity/logs  \
-p 8111:8111 \
jetbrains/teamcity-server

出现此提示时表示初步安装成功,接下来进入后台进行配置

Startup confirmation is required. Open TeamCity web page in the browser. Server is running at http://localhost:8111

数据库选择:

支持 Mysql, Oracle, PostgreSQL,HSQLDB,这里选用的是默认数据.

初次进入会提示创建项目,后续需要主动创建项目.这里提供了简便的用户密码方式授权,同时也提供了 Oauth 方式

image.png

image.png

根据提示选择 Proceed,此步骤会根据工程目录自动选择可能的Build Steps

image.png

首次接触误以为 直接run可以了。会提示没有可用的 agent.

image.png

安装 Agent,每一台要发布的机器都要安装 agent,有没有批量安装方法呢?用 K8S 环境下如何部署?:

   docker run -p 9090:9090 -it -e SERVER_URL="http://120.27.8.120:8111"  \

-v /data/teamcity_agent/conf:/data/teamcity_agent/conf \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/buildagent/work:/opt/buildagent/work \
-v /opt/buildagent/temp:/opt/buildagent/temp \
-v /opt/buildagent/tools:/opt/buildagent/tools \
-v /opt/buildagent/plugins:/opt/buildagent/plugins \
-v /opt/buildagent/system:/opt/buildagent/system \
jetbrains/teamcity-agent

注意::

   Image 安装要注意制定本地目录,否则 Agent 虽然能 connected但是 build的时候找不到。为了省去不必要的麻烦端口号都有点 9090。

image.png

angent安装出现 authorization token 时,复制 token回到 web 管理界面进行 agent 授权。

image.png
image.png

授权完会进入自动build

image.png
image.png

到目前为止 整个 TeamCity 就安装完了:

上面用到了 Token 授权 Server 访问 Agent,在安装 Server 时也曾出现过用 Token 代替用户和密码登陆,后续再要求创建管理员账号。

配置自动化发布

设置 Build Steps ,此例子总共6 步:

build, login, push, stop rm, delete image, run.
Login主要是为了登陆阿里的容器仓库,实际上在非容器化部署的 agent 中只执行一次即可,主机会记住登陆信息。

image.png

Buid:

创建 Build,比较简单 Runner Type 选择 Docker 即可。 给 Step 命名为 Build(随便命名可读即可),Docker command 选择 build,Path to file默认 TeamCity 会读取根目录下的Dockerfile,也可以指定其他目录的 Dockerfile。Image name:tag 根基实际情况指定。这里是用的阿里的registry.cn-beijing.aliyuncs.com/langzhe/ssj

image.png

Login:

授权允许访问仓库,Docker command 中没有 login,这里选择 other,在 Command name 中输入 login.
在 Additional arguments 中数据用户名密码和地址。

image.png

Push:

把镜像推到阿里镜像仓库,这个配置比较简单

image.png

stop rm: 测试的时候发现经常 Image 不更新,这里在 run 时,先把容器停掉并删除,同时把 Image 删除,run 的时候用的 latest.需要在主机上执行命令Runner Type要选择 CommandLine ,Run:选择 Custom script并输入以下脚本:

docker stop `docker images |grep ssj |awk '{print $3}'`

image.png

删除 Image,与第四步类似,脚本如下:

docker rmi `docker images |grep ssj |awk '{print $3}'`

image.png

第六步 run,与第二步类似:

DockerComand选择 Other,在 Command name 中输入 run.

Additional arguments for the command:输入-p 80:80 -d registry.cn-beijing.aliyuncs.com/langzhe/ssj

image.png

然后,执行 Run,这个过程需要反复调试。可以禁用一些 Steps.

最后一定要设置 Trigers

image.png

image.png

目录
相关文章
|
3月前
|
jenkins 持续交付 开发工具
自动化开发之旅:Docker携手Jenkins,与Git和Tomcat共舞持续集成
【8月更文挑战第13天】在软件开发中,持续集成(CI)通过自动化构建、测试与部署提升效率与稳定性。Docker、Jenkins、Git和Tomcat构成CI的黄金组合:`git push`触发Jenkins作业,利用Docker确保环境一致性,最终将应用部署至Tomcat。首先配置Git Webhooks以触发Jenkins;接着在Jenkins中创建作业并使用Docker插件模拟真实环境;通过Maven构建项目;最后部署至Tomcat。这套流程减少人为错误,提高开发效率,展示了技术的力量与流程的革新。
89 0
|
5月前
|
XML jenkins Java
必知的技术知识:Jenkins插件开发
必知的技术知识:Jenkins插件开发
182 0
|
6月前
|
jenkins Java 应用服务中间件
Jenkins 安装全攻略:从入门到精通
Jenkins 安装全攻略:从入门到精通
152 0
|
IDE 开发工具
|
JSON Linux 数据格式
Hugo教程#1配置开发环境
前段时间我把我的博客的生成器从Jekyll换到了Gatsby后来发现并不好用,又想回到Jekyll,最后由于ruby的gem安装老是出错,所以我试了一下Hugo
189 0
【Sonarqube】初体验
【Sonarqube】初体验
121 0
|
jenkins Java 应用服务中间件
jenkins手把手教你从入门到放弃02-jenkins在Windows系统安装与配置(详解)
上一篇对jenkins有了大致了解之后,那么我们就开始来安装一下jenkins。
274 0
jenkins手把手教你从入门到放弃02-jenkins在Windows系统安装与配置(详解)
|
存储 监控 前端开发
jenkins手把手教你从入门到放弃01-jenkins简介(详解)
jenkins是一个可扩展的持续集成引擎。持续集成,也就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
869 0
jenkins手把手教你从入门到放弃01-jenkins简介(详解)
|
jenkins Java Linux
Jenkins 初体验
Jenkins 初体验
167 0
Jenkins 初体验
|
数据可视化 开发工具 数据库
史上最全的企业级项目管理工具之Yapi,禅道,GitLab 搭建
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
441 0