解决了什么问题?
快速ci cd ;
团队协作效率更高,更快的集成,更快的交付;走gitops模式;
主流的CICD过程:
teamcity的架构:
安装方式
docker的方式安装快速
安装server端
1 | shell复制代码mkdir -p /data/teamcity_server/datadir /data/teamcity/logs |
然后得到访问的url,后面安装客户端的时候需要用到。
比如这里是: http://172.31.12.168:8111
数据库选择选用默认的hsqldb,这里只要挂载的目录不丢,重新安装之后数据也是存在的;
安装client端
1 | shell复制代码mkdir -p /data/teamcity_agent/conf |
可以安装多个;
但是专业版本的限定了3个,所以为了后期的遍历,最多不超过3个客户端吧!
安装完毕之后需要在server端对agent进行授权才能使用。
直接备注即可加入到客户端池。
然后即可加入到服务端的客户端池子。构建的任务的执行即可按照并行度为3进行执行。
也可以物理化部署,不会有docker内核的问题。
这个位置可以下载物理版本的客户端安装包。结合文档修改配置参数即可;
主要修改的是服务端server的地址和客户端的应用名称;
位置:/data/team_agent4/conf/buildAgent.properties
启动指令: ./bin/agent.sh start
然后在服务端授权即可使用。
使用初体验
一个后端工程的CI和CD过程:
下面是实践过程:
创建工程
然后贴入你的 gitlab或者github仓库地址;
填写一个有只读权限的账号和密码。
配置CICD构成脚本
1 后端打jar包
2 打后端docker镜像
3 前端npm打包
4 前端镜像制作
5 推送前端和后端镜像到镜像仓库
6 发布到k8s环境
7 发动钉钉通知到项目群
整体的kotlin代码
1 | java复制代码package _Self.buildTypes |
小结
teamcity专业版本限制3个执行客户端,100个构建配置,适合小型团队;
用户体验比较好,界面比较好看。
自动检测代码变化,进行构建;(可以大大提高CI效率)
比如推送了一个修改到某个分支,直接就发布到了集成测试环境了。
pk
(开发完毕一个功能,然后合并到集成测试分支,再到CICD系统点发布,碰到问题再惊起一滩鸥鹭)
更优雅。
钉钉消息通知
拉一个钉钉群,增加一个机器人:
完整之后,即可拿到通知token:
oapi.dingtalk.com/robot/send?…
准备的shell脚本:
1 | shell复制代码url='https://oapi.dingtalk.com/robot/send?access_token=c30f5008258474da14e65d3141536953b79df3bf3ab64f33a583e83165b19665' |
实际例子:
1 | shell复制代码url='https://oapi.dingtalk.com/robot/send?access_token=b0dc2aee487a842dd5648566ade86e2217dac868c0ffdcab5138cb7eab163978' |
通知效果截图:
材料
使用手册: (必看英文材料)
www.jetbrains.com/help/teamci…
teamcity之旅 (必看中文材料)
developer.aliyun.com/article/738…
腾讯云搭建teamcity过程:(特权容器解决docker agent无法打镜像的问题)
blog.csdn.net/sD7O95O/art…
钉钉机器人通知文档:
ding-doc.dingtalk.com/doc#/server…
程序启动之后通过shell通知到钉钉群:
blog.csdn.net/weixin_3783…
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
本文转载自: 掘金